<?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>201879</bug_id>
          
          <creation_ts>2019-09-17 12:43:19 -0700</creation_ts>
          <short_desc>Use constexpr instead of const in symbol definitions that are obviously constexpr.</short_desc>
          <delta_ts>2019-09-19 09:31:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>bburg</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1571631</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-17 12:43:19 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571635</commentid>
    <comment_count>1</comment_count>
      <attachid>378981</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-17 12:49:13 -0700</bug_when>
    <thetext>Created attachment 378981
proposed patch.

Let&apos;s get some EWS testing first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571636</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-09-17 12:49:43 -0700</bug_when>
    <thetext>This patch modifies the inspector protocol generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-inspector-generator-tests --reset-results`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571647</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-17 13:18:06 -0700</bug_when>
    <thetext>Can this include the reason &quot;why&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571653</commentid>
    <comment_count>4</comment_count>
      <attachid>378982</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-17 13:26:23 -0700</bug_when>
    <thetext>Created attachment 378982
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571665</commentid>
    <comment_count>5</comment_count>
      <attachid>378985</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-17 13:45:12 -0700</bug_when>
    <thetext>Created attachment 378985
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571679</commentid>
    <comment_count>6</comment_count>
      <attachid>378985</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-17 14:04:13 -0700</bug_when>
    <thetext>Comment on attachment 378985
proposed patch.

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

rs=me, waiting for tests

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        const may require external storage  (at the compiler&apos;s whim) though these
&gt; +        currently do not.  constexpr makes it clear that the value is a literal constant
&gt; +        that can be inlined.  In most cases in the code, when we say static const, we
&gt; +        actually mean static constexpr.  I&apos;m changing the code to reflect this.

Nice! Does that mean a binary size (and DATA) reduction? Do we have a measurement?

&gt; Source/JavaScriptCore/testRegExp.cpp:2
&gt; + *  Copyright (C) 2011-2019 Apple Inc. All rights reserved.

We probably don&apos;t need to update the copyrights for these kind of trivial changes. But since you&apos;ve already done it that seems fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571680</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-17 14:07:15 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #6)
&gt; Comment on attachment 378985 [details]
&gt; proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=378985&amp;action=review
&gt; 
&gt; rs=me, waiting for tests

Thanks.

&gt; &gt; Source/JavaScriptCore/ChangeLog:11
&gt; &gt; +        const may require external storage  (at the compiler&apos;s whim) though these
&gt; &gt; +        currently do not.  constexpr makes it clear that the value is a literal constant
&gt; &gt; +        that can be inlined.  In most cases in the code, when we say static const, we
&gt; &gt; +        actually mean static constexpr.  I&apos;m changing the code to reflect this.
&gt; 
&gt; Nice! Does that mean a binary size (and DATA) reduction? Do we have a
&gt; measurement?

I don&apos;t expect any size change, and I don&apos;t plan to spend time measuring it.  We&apos;ll let a bot measure the size difference (if any) later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571682</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-17 14:11:30 -0700</bug_when>
    <thetext>I like this change. Except for `static const int`, other definition in class-scope can potentially allocate storage. And it sometimes causes link failure. And we sometimes avoid such a link failure by using a hack like,

class A {
public:
    static unsigned value = 42;
};

In otehr .cpp file
use(+A::value);  // Use + to avoid linking to A::value storage.

I don&apos;t remember it but I know we had at least one such a hack for MacroAssembler&apos;s some register variable.

If we use constexpr, it becomes C++17 inline variable, then, the above problem does not happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571684</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-17 14:14:47 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #8)
&gt; I like this change. Except for `static const int`, other definition in
&gt; class-scope can potentially allocate storage. And it sometimes causes link
&gt; failure. And we sometimes avoid such a link failure by using a hack like,
&gt; 
&gt; class A {
&gt; public:
&gt;     static unsigned value = 42;
&gt; };
&gt; 
&gt; In otehr .cpp file
&gt; use(+A::value);  // Use + to avoid linking to A::value storage.
&gt; 
&gt; I don&apos;t remember it but I know we had at least one such a hack for
&gt; MacroAssembler&apos;s some register variable.
&gt; 
&gt; If we use constexpr, it becomes C++17 inline variable, then, the above
&gt; problem does not happen.

Yes, b3/B3Common.cpp&apos;s `return static_cast&lt;GPRReg&gt;(+MacroAssembler::dataTempRegister);`. We can remove such a hack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571686</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-17 14:17:47 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #9)
&gt; (In reply to Yusuke Suzuki from comment #8)
&gt; &gt; I like this change. Except for `static const int`, other definition in
&gt; &gt; class-scope can potentially allocate storage. And it sometimes causes link
&gt; &gt; failure. And we sometimes avoid such a link failure by using a hack like,
&gt; &gt; 
&gt; &gt; class A {
&gt; &gt; public:
&gt; &gt;     static unsigned value = 42;
&gt; &gt; };
&gt; &gt; 
&gt; &gt; In otehr .cpp file
&gt; &gt; use(+A::value);  // Use + to avoid linking to A::value storage.
&gt; &gt; 
&gt; &gt; I don&apos;t remember it but I know we had at least one such a hack for
&gt; &gt; MacroAssembler&apos;s some register variable.
&gt; &gt; 
&gt; &gt; If we use constexpr, it becomes C++17 inline variable, then, the above
&gt; &gt; problem does not happen.
&gt; 
&gt; Yes, b3/B3Common.cpp&apos;s `return
&gt; static_cast&lt;GPRReg&gt;(+MacroAssembler::dataTempRegister);`. We can remove such
&gt; a hack.

Let&apos;s do this in a follow up patch. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572382</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-19 09:31:00 -0700</bug_when>
    <thetext>Landed in r250005: &lt;http://trac.webkit.org/r250005&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572383</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-19 09:31:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/55522340&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378981</attachid>
            <date>2019-09-17 12:49:13 -0700</date>
            <delta_ts>2019-09-17 13:26:23 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-201879.patch</filename>
            <type>text/plain</type>
            <size>572171</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4MyBA
QAorMjAxOS0wOS0xNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAg
VXNlIGNvbnN0ZXhwciBpbnN0ZWFkIG9mIGNvbnN0IGluIHN5bWJvbCBkZWZpbml0aW9ucyB0aGF0
IGFyZSBvYnZpb3VzbHkgY29uc3RleHByLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNBUElWYWx1ZVdyYXBwZXIuaDoKKyAgICAgICAgKiBB
UEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmg6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaDoKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKiBBUEkvSlNX
cmFwcGVyTWFwLm1tOgorICAgICAgICAqIEFQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3Bw
OgorICAgICAgICAqIEFQSS90ZXN0cy9UeXBlZEFycmF5Q1Rlc3QuY3BwOgorICAgICAgICAqIEFQ
SS90ZXN0cy90ZXN0YXBpLm1tOgorICAgICAgICAodGVzdE9iamVjdGl2ZUNBUElNYWluKToKKyAg
ICAgICAgKiBLZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5OgorICAgICAgICAoVHJpZS5wcmludEFz
Qyk6CisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CisgICAgICAgICogYXNz
ZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oOgorICAgICAgICAqIGFzc2VtYmxlci9Bc3NlbWJsZXJD
b21tb24uaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaDoKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAgICAgICAqIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTTY0RS5oOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTXY3Lmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oOgor
ICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoKKyAgICAgICAgKiBhc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODYuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246
OmFic0RvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpuZWdh
dGVEb3VibGUpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oOgor
ICAgICAgICAqIGFzc2VtYmxlci9YODZBc3NlbWJsZXIuaDoKKyAgICAgICAgKiBiMy9CM0Jhbmsu
aDoKKyAgICAgICAgKiBiMy9CM0NoZWNrU3BlY2lhbC5oOgorICAgICAgICAqIGIzL0IzRHVwbGlj
YXRlVGFpbHMuY3BwOgorICAgICAgICAqIGIzL0IzRWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lv
bnMuY3BwOgorICAgICAgICAqIGIzL0IzRml4U1NBLmNwcDoKKyAgICAgICAgKiBiMy9CM0ZvbGRQ
YXRoQ29uc3RhbnRzLmNwcDoKKyAgICAgICAgKiBiMy9CM0luZmVyU3dpdGNoZXMuY3BwOgorICAg
ICAgICAqIGIzL0IzS2luZC5oOgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAg
ICAgICogYjMvQjNOYXRpdmVUcmFpdHMuaDoKKyAgICAgICAgKiBiMy9CM1JlZHVjZURvdWJsZVRv
RmxvYXQuY3BwOgorICAgICAgICAqIGIzL0IzUmVkdWNlTG9vcFN0cmVuZ3RoLmNwcDoKKyAgICAg
ICAgKiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcDoKKyAgICAgICAgKiBiMy9CM1ZhbHVlS2V5Lmg6
CisgICAgICAgICogYjMvYWlyL0FpckFsbG9jYXRlUmVnaXN0ZXJzQnlHcmFwaENvbG9yaW5nLmNw
cDoKKyAgICAgICAgKiBiMy9haXIvQWlyQWxsb2NhdGVTdGFja0J5R3JhcGhDb2xvcmluZy5jcHA6
CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAqIGIzL2Fpci9BaXJDQ2FsbFNw
ZWNpYWwuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyRW1pdFNodWZmbGUuY3BwOgorICAgICAgICAq
IGIzL2Fpci9BaXJGaXhPYnZpb3VzU3BpbGxzLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWlyRm9y
bVRhYmxlLmg6CisgICAgICAgICogYjMvYWlyL0Fpckxvd2VyQWZ0ZXJSZWdBbGxvYy5jcHA6Cisg
ICAgICAgICogYjMvYWlyL0FpclByaW50U3BlY2lhbC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJT
dGFja0FsbG9jYXRpb24uY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJUbXAuaDoKKyAgICAgICAg
KiBiMy90ZXN0YjNfNi5jcHA6CisgICAgICAgICh0ZXN0SW50ZXJwcmV0ZXIpOgorICAgICAgICAq
IGJ5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5rU3Rh
dHVzLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9DYWxsVmFyaWFudC5oOgorICAgICAgICAqIGJ5
dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVPcmlnaW4uaDoKKyAg
ICAgICAgKiBieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oOgorICAgICAgICAqIGJ5dGVjb2RlL0Rp
cmVjdEV2YWxDb2RlQ2FjaGUuaDoKKyAgICAgICAgKiBieXRlY29kZS9FeGVjdXRhYmxlVG9Db2Rl
QmxvY2tFZGdlLmg6CisgICAgICAgICogYnl0ZWNvZGUvR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZS5j
cHA6CisgICAgICAgICogYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuaDoKKyAgICAg
ICAgKiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5oOgorICAgICAgICAqIGJ5dGVj
b2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9Q
b2x5bW9ycGhpY0FjY2Vzcy5jcHA6CisgICAgICAgICogYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRp
b24uaDoKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oOgorICAgICAgICAqIGJ5
dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9Vbmxpbmtl
ZENvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OlVubGlua2VkQ29kZUJsb2NrOjp0eXBlUHJv
ZmlsZXJFeHByZXNzaW9uSW5mb0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKiBieXRlY29k
ZS9VbmxpbmtlZENvZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkRXZhbENv
ZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25Db2RlQmxvY2su
aDoKKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oOgorICAg
ICAgICAqIGJ5dGVjb2RlL1VubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jay5oOgorICAgICAg
ICAqIGJ5dGVjb2RlL1VubGlua2VkUHJvZ3JhbUNvZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVj
b2RlL1ZhbHVlUHJvZmlsZS5oOgorICAgICAgICAqIGJ5dGVjb2RlL1ZpcnR1YWxSZWdpc3Rlci5o
OgorICAgICAgICAqIGJ5dGVjb2RlL1dhdGNocG9pbnQuaDoKKyAgICAgICAgKiBieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTGFiZWwuaDoK
KyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6
VGhpc05vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL1JlZ2lzdGVy
SUQuaDoKKyAgICAgICAgKiBkZWJ1Z2dlci9CcmVha3BvaW50Lmg6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJQYXJzZURhdGEuY3BwOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyUHJp
bWl0aXZlcy5oOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyU2NvcGUuaDoKKyAgICAgICAg
KiBkZmcvREZHQWJzdHJhY3RIZWFwLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0VmFsdWUu
aDoKKyAgICAgICAgKiBkZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHA6CisgICAg
ICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHQ1NFUGhh
c2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdDb21tb24uaDoKKyAgICAgICAgKiBkZmcvREZHQ29t
cGlsYXRpb25LZXkuaDoKKyAgICAgICAgKiBkZmcvREZHRGVzaXJlZEdsb2JhbFByb3BlcnR5Lmg6
CisgICAgICAgICogZGZnL0RGR0VkZ2VEb21pbmF0ZXMuaDoKKyAgICAgICAgKiBkZmcvREZHRXBv
Y2guaDoKKyAgICAgICAgKiBkZmcvREZHRm9yQWxsS2lsbHMuaDoKKyAgICAgICAgKEpTQzo6REZH
Ojpmb3JBbGxLaWxsZWROb2Rlc0F0Tm9kZUluZGV4KToKKyAgICAgICAgKiBkZmcvREZHR3JhcGgu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjppc0xpdmVJbkJ5dGVjb2RlKToKKyAgICAg
ICAgKiBkZmcvREZHSGVhcExvY2F0aW9uLmg6CisgICAgICAgICogZGZnL0RGR0luUGxhY2VBYnN0
cmFjdFN0YXRlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhh
c2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdJbnRlZ2VyUmFuZ2VPcHRpbWl6YXRpb25QaGFzZS5j
cHA6CisgICAgICAgICogZGZnL0RGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuY3Bw
OgorICAgICAgICAqIGRmZy9ERkdMSUNNUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdMYXp5
Tm9kZS5oOgorICAgICAgICAqIGRmZy9ERkdNaW5pZmllZElELmg6CisgICAgICAgICogZGZnL0RG
R01vdkhpbnRSZW1vdmFsUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdOb2RlRmxvd1Byb2pl
Y3Rpb24uaDoKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZH
T2JqZWN0QWxsb2NhdGlvblNpbmtpbmdQaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR1BoYW50
b21JbnNlcnRpb25QaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR1Byb21vdGVkSGVhcExvY2F0
aW9uLmg6CisgICAgICAgICogZGZnL0RGR1Byb3BlcnR5VHlwZUtleS5oOgorICAgICAgICAqIGRm
Zy9ERkdQdXJlVmFsdWUuaDoKKyAgICAgICAgKiBkZmcvREZHUHV0U3RhY2tTaW5raW5nUGhhc2Uu
Y3BwOgorICAgICAgICAqIGRmZy9ERkdSZWdpc3RlckJhbmsuaDoKKyAgICAgICAgKiBkZmcvREZH
U1NBQ29udmVyc2lvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU1NBTG93ZXJpbmdQaGFz
ZS5jcHA6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURvdWJsZVJlcCk6CisgICAgICAgIChKU0M6
OkRGRzo6Y29tcGlsZUNsYW1wRG91YmxlVG9CeXRlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoUm91bmRpbmcpOgorICAgICAgICAoSlNDOjpERkc6OmNv
bXBpbGVBcml0aFBvd0ludGVnZXJGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVBcml0aFBvdyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmVtaXRCaW5hcnlTd2l0Y2hTdHJpbmdSZWN1cnNlKToKKyAgICAgICAgKiBkZmcvREZH
U3RhY2tMYXlvdXRQaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR1N0b3JlQmFycmllckluc2Vy
dGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5j
cHA6CisgICAgICAgICogZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaDoKKyAgICAgICAg
KiBkZmcvREZHVmFyYXJnc0ZvcndhcmRpbmdQaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR1Zh
cmlhYmxlRXZlbnRTdHJlYW0uY3BwOgorICAgICAgICAoSlNDOjpERkc6OlZhcmlhYmxlRXZlbnRT
dHJlYW06OnJlY29uc3RydWN0IGNvbnN0KToKKyAgICAgICAgKiBkZmcvREZHV2F0Y2hwb2ludENv
bGxlY3Rpb25QaGFzZS5jcHA6CisgICAgICAgICogZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNv
ZGUuaDoKKyAgICAgICAgKiBmdGwvRlRMTG9jYXRpb24uaDoKKyAgICAgICAgKiBmdGwvRlRMTG93
ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29t
cGlsZUFyaXRoUmFuZG9tKToKKyAgICAgICAgKiBmdGwvRlRMU2xvd1BhdGhDYWxsLmNwcDoKKyAg
ICAgICAgKiBmdGwvRlRMU2xvd1BhdGhDYWxsS2V5Lmg6CisgICAgICAgICogaGVhcC9DZWxsQ29u
dGFpbmVyLmg6CisgICAgICAgICogaGVhcC9DZWxsU3RhdGUuaDoKKyAgICAgICAgKiBoZWFwL0Nv
bnNlcnZhdGl2ZVJvb3RzLmg6CisgICAgICAgICogaGVhcC9HQ1NlZ21lbnRlZEFycmF5Lmg6Cisg
ICAgICAgICogaGVhcC9IYW5kbGVCbG9jay5oOgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6Cisg
ICAgICAgIChKU0M6OkhlYXA6OnVwZGF0ZUFsbG9jYXRpb25MaW1pdHMpOgorICAgICAgICAqIGhl
YXAvSGVhcC5oOgorICAgICAgICAqIGhlYXAvSGVhcFNuYXBzaG90Lmg6CisgICAgICAgICogaGVh
cC9IZWFwVXRpbC5oOgorICAgICAgICAoSlNDOjpIZWFwVXRpbDo6ZmluZEdDT2JqZWN0UG9pbnRl
cnNGb3JNYXJraW5nKToKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHA6Cisg
ICAgICAgICogaGVhcC9MYXJnZUFsbG9jYXRpb24uaDoKKyAgICAgICAgKiBoZWFwL01hcmtlZEJs
b2NrLmNwcDoKKyAgICAgICAgKiBoZWFwL1N0cm9uZy5oOgorICAgICAgICAqIGhlYXAvVmlzaXRS
YWNlS2V5Lmg6CisgICAgICAgICogaGVhcC9XZWFrLmg6CisgICAgICAgICogaGVhcC9XZWFrQmxv
Y2suaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmg6CisgICAgICAgICogaW5zcGVjdG9y
L0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3Bl
Y3RvclJ1bnRpbWVBZ2VudDo6Z2V0UnVudGltZVR5cGVzRm9yVmFyaWFibGVzQXRPZmZzZXRzKToK
KyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9wcm90b2Nv
bF90eXBlc19oZWFkZXIucHk6CisgICAgICAgIChDcHBQcm90b2NvbFR5cGVzSGVhZGVyR2VuZXJh
dG9yLl9nZW5lcmF0ZV92ZXJzaW9ucyk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0
ZXIuaDoKKyAgICAgICAgKiBpbnRlcnByZXRlci9TaGFkb3dDaGlja2VuLmNwcDoKKyAgICAgICAg
KiBqaXQvQmluYXJ5U3dpdGNoLmNwcDoKKyAgICAgICAgKiBqaXQvQ2FsbEZyYW1lU2h1ZmZsZXIu
aDoKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oOgorICAgICAgICAqIGppdC9G
UFJJbmZvLmg6CisgICAgICAgICogaml0L0dQUkluZm8uaDoKKyAgICAgICAgKiBqaXQvSUNTdGF0
cy5oOgorICAgICAgICAqIGppdC9KSVRUaHVua3MuaDoKKyAgICAgICAgKiBqaXQvUmVnLmg6Cisg
ICAgICAgICogaml0L1JlZ2lzdGVyU2V0Lmg6CisgICAgICAgICogaml0L1RlbXBSZWdpc3RlclNl
dC5oOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogcGFyc2VyL0FTVEJ1aWxkZXIuaDoK
KyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAgICAgICAgKiBwYXJzZXIvU291cmNlQ29kZUtl
eS5oOgorICAgICAgICAqIHBhcnNlci9TeW50YXhDaGVja2VyLmg6CisgICAgICAgICogcGFyc2Vy
L1ZhcmlhYmxlRW52aXJvbm1lbnQuaDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlck9yaWdp
bi5oOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luU3RhY2suaDoKKyAgICAgICAg
KiBwcm9maWxlci9Qcm9maWxlclVJRC5oOgorICAgICAgICAqIHJ1bnRpbWUvQWJzdHJhY3RNb2R1
bGVSZWNvcmQuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRj
aHBvaW50U2V0Lmg6CisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmg6CisgICAg
ICAgICogcnVudGltZS9BcnJheUNvbnZlbnRpb25zLmg6CisgICAgICAgICogcnVudGltZS9BcnJh
eUl0ZXJhdG9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OnNldExlbmd0aCk6CisgICAgICAgICogcnVudGltZS9Bc3luY0Zy
b21TeW5jSXRlcmF0b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0FzeW5jR2VuZXJh
dG9yRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0FzeW5jR2VuZXJhdG9y
UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9Bc3luY0l0ZXJhdG9yUHJvdG90eXBlLmg6
CisgICAgICAgICogcnVudGltZS9BdG9taWNzT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0JpZ0ludENvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9CaWdJbnRQcm90b3R5cGUu
aDoKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50
aW1lL0Nsb25lZEFyZ3VtZW50cy5oOgorICAgICAgICAqIHJ1bnRpbWUvQ29kZUNhY2hlLmg6Cisg
ICAgICAgICogcnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmg6CisgICAgICAgICogcnVudGlt
ZS9DdXN0b21HZXR0ZXJTZXR0ZXIuaDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRp
bWUvRGVmaW5lUHJvcGVydHlBdHRyaWJ1dGVzLmg6CisgICAgICAgICogcnVudGltZS9FcnJvclBy
b3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvRXZhbEV4ZWN1dGFibGUuaDoKKyAgICAgICAg
KiBydW50aW1lL0V4Y2VwdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVy
cy5jcHA6CisgICAgICAgIChKU0M6OmludmFsaWRQYXJhbWV0ZXJJblNvdXJjZUFwcGVuZGVyKToK
KyAgICAgICAgKEpTQzo6aW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZTb3VyY2VBcHBlbmRlcik6
CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg6CisgICAgICAgICogcnVudGlt
ZS9FeGVjdXRhYmxlQmFzZS5oOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxl
Lmg6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmg6CisgICAgICAgICogcnVu
dGltZS9HZW5lcmF0b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0dlbmVyaWNBcmd1
bWVudHMuaDoKKyAgICAgICAgKiBydW50aW1lL0dlbmVyaWNPZmZzZXQuaDoKKyAgICAgICAgKiBy
dW50aW1lL0dldFB1dEluZm8uaDoKKyAgICAgICAgKiBydW50aW1lL0dldHRlclNldHRlci5oOgor
ICAgICAgICAqIHJ1bnRpbWUvR2xvYmFsRXhlY3V0YWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUv
SWRlbnRpZmllci5oOgorICAgICAgICAqIHJ1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmg6CisgICAgICAg
ICogcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUv
SW50bENvbGxhdG9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVG
b3JtYXRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0
UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0
b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuaDoKKyAg
ICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxQbHVy
YWxSdWxlc0NvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9JbnRsUGx1cmFsUnVsZXNQ
cm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0l0ZXJhdG9yUHJvdG90eXBlLmg6CisgICAg
ICAgICogcnVudGltZS9KU0FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNBcnJheTo6dHJ5Q3Jl
YXRlVW5pbml0aWFsaXplZFJlc3RyaWN0ZWQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlci5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBcnJheUJ1ZmZlclZpZXcuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQmlnSW50Lmg6CisgICAg
ICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24uaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTRGF0YVZpZXcuaDoKKyAgICAgICAgKiBydW50aW1lL0pTRGF0YVZpZXdQ
cm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0Lmg6Cisg
ICAgICAgICogcnVudGltZS9KU0ZpeGVkQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3Lmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbExleGljYWxF
bnZpcm9ubWVudC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTSW1tdXRhYmxlQnV0dGVyZmx5Lmg6CisgICAgICAgICogcnVudGltZS9K
U0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9KU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkLmg6CisgICAgICAgICogcnVudGltZS9KU0ludGVybmFsUHJvbWlz
ZVByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlRW52aXJvbm1lbnQuaDoKKyAgICAgICAgKiBydW50
aW1lL0pTTW9kdWxlTG9hZGVyLmg6CisgICAgICAgICogcnVudGltZS9KU01vZHVsZU5hbWVzcGFj
ZU9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb25EZXN0cnVjdGlibGVQcm94eS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU09O
T2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNQcm9taXNlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZURl
ZmVycmVkLmg6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNQcm94eS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNTY29wZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNTY3JpcHRGZXRjaFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU2Ny
aXB0RmV0Y2hlci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVj
dC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNTb3VyY2VDb2RlLmg6CisgICAgICAgICogcnVudGlt
ZS9KU1N0cmluZy5jcHA6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5oOgorICAgICAgICAq
IHJ1bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNUZW1w
bGF0ZU9iamVjdERlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZUluZm8uaDoK
KyAgICAgICAgKiBydW50aW1lL01hcFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvTWlu
aW11bVJlc2VydmVkWm9uZVNpemUuaDoKKyAgICAgICAgKiBydW50aW1lL01vZHVsZVByb2dyYW1F
eGVjdXRhYmxlLmg6CisgICAgICAgICogcnVudGltZS9OYXRpdmVFeGVjdXRhYmxlLmg6CisgICAg
ICAgICogcnVudGltZS9OYXRpdmVGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZl
U3RkRnVuY3Rpb25DZWxsLmg6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5o
OgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBl
Lmg6CisgICAgICAgICogcnVudGltZS9Qcm9ncmFtRXhlY3V0YWJsZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVy
dHlNYXBIYXNoVGFibGUuaDoKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5Lmg6
CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5OjphZGQpOgorICAgICAgICAqIHJ1bnRp
bWUvUHJvdG90eXBlS2V5Lmg6CisgICAgICAgICogcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmg6
CisgICAgICAgICogcnVudGltZS9Qcm94eU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlByb3h5
T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9Q
cm94eVJldm9rZS5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVmbGVjdE9iamVjdC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvUmVnRXhwLmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDYWNoZS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1l
L1JlZ0V4cEtleS5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAgICAg
ICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFN0
cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9TYW1wbGluZ1Byb2Zp
bGVyLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Njb3BlZEFyZ3VtZW50c1RhYmxlLmg6CisgICAg
ICAgICogcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmg6CisgICAgICAgICogcnVudGltZS9TZXRQ
cm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1NtYWxsU3RyaW5ncy5oOgorICAgICAgICAq
IHJ1bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5n
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0l0ZXJhdG9yUHJvdG90eXBl
Lmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAg
ICAgICogcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0
dXJlUmFyZURhdGEuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJs
ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sLmg6CisgICAgICAgICogcnVudGltZS9TeW1i
b2xDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmg6Cisg
ICAgICAgICogcnVudGltZS9TeW1ib2xUYWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvVGVtcGxh
dGVPYmplY3REZXNjcmlwdG9yLmg6CisgICAgICAgICogcnVudGltZS9UeXBlUHJvZmlsZXIuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvVHlwZVByb2ZpbGVyLmg6CisgICAgICAgICogcnVudGltZS9U
eXBlUHJvZmlsZXJMb2cuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvVmFyT2Zmc2V0Lmg6CisgICAg
ICAgICogdGVzdFJlZ0V4cC5jcHA6CisgICAgICAgICogdG9vbHMvSGVhcFZlcmlmaWVyLmNwcDoK
KyAgICAgICAgKEpTQzo6SGVhcFZlcmlmaWVyOjpjaGVja0lmUmVjb3JkZWQpOgorICAgICAgICAq
IHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAqIHdhc20vV2FzbUIzSVJHZW5lcmF0b3Iu
Y3BwOgorICAgICAgICAqIHdhc20vV2FzbUJCUVBsYW4uY3BwOgorICAgICAgICAqIHdhc20vV2Fz
bUZhdWx0U2lnbmFsSGFuZGxlci5jcHA6CisgICAgICAgICogd2FzbS9XYXNtRnVuY3Rpb25QYXJz
ZXIuaDoKKyAgICAgICAgKiB3YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4uY3BwOgorICAgICAg
ICAqIHdhc20vV2FzbU9NR1BsYW4uY3BwOgorICAgICAgICAqIHdhc20vV2FzbVBsYW4uY3BwOgor
ICAgICAgICAqIHdhc20vV2FzbVNpZ25hdHVyZS5jcHA6CisgICAgICAgICogd2FzbS9XYXNtU2ln
bmF0dXJlLmg6CisgICAgICAgICogd2FzbS9XYXNtV29ya2xpc3QuY3BwOgorICAgICAgICAqIHdh
c20vanMvSlNXZWJBc3NlbWJseS5oOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUNv
ZGVCbG9jay5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25z
dHJ1Y3Rvci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90
b3R5cGUuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uaDoKKyAgICAg
ICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5oOgorICAgICAgICAqIHdhc20v
anMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlMaW5rRXJyb3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFz
c2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5
TWVtb3J5UHJvdG90eXBlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNv
bnN0cnVjdG9yLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVByb3RvdHlw
ZS5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUu
aDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5oOgorICAgICAgICAqIHdh
c20vanMvV2ViQXNzZW1ibHlUb0pTQ2FsbGVlLmg6CisgICAgICAgICogeWFyci9ZYXJyLmg6Cisg
ICAgICAgICogeWFyci9ZYXJyUGFyc2VyLmg6CisgICAgICAgICogeWFyci9nZW5lcmF0ZVlhcnJD
YW5vbmljYWxpemVVbmljb2RlOgorCiAyMDE5LTA5LTE3ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlA
YXBwbGUuY29tPgogCiAgICAgICAgIENoZWNrQXJyYXkgb24gRGlyZWN0QXJndW1lbnRzL1Njb3Bl
ZEFyZ3VtZW50cyBkb2VzIG5vdCBmaWx0ZXIgb3V0IHNsb3cgcHV0IGFycmF5IHN0b3JhZ2UKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9LZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9LZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5
CShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvS2V5d29yZExvb2t1
cEdlbmVyYXRvci5weQkod29ya2luZyBjb3B5KQpAQCAtMTg3LDcgKzE4Nyw3IEBAIGNsYXNzIFRy
aWU6CiAgICAgICAgIHByaW50KCJzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGlzSWRlbnRQYXJ0
SW5jbHVkaW5nRXNjYXBlKGNvbnN0IExDaGFyKiBjb2RlLCBjb25zdCBMQ2hhciogY29kZUVuZCk7
IikKICAgICAgICAgcHJpbnQoInN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgaXNJZGVudFBhcnRJ
bmNsdWRpbmdFc2NhcGUoY29uc3QgVUNoYXIqIGNvZGUsIGNvbnN0IFVDaGFyKiBjb2RlRW5kKTsi
KQogICAgICAgICAjIG1heCBsZW5ndGggKyAxIHNvIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55IGJv
dW5kcyBjaGVja2luZyBhdCBhbGwKLSAgICAgICAgcHJpbnQoInN0YXRpYyBjb25zdCBpbnQgbWF4
VG9rZW5MZW5ndGggPSAlZDsiICUgKHNlbGYubWF4TGVuZ3RoKCkgKyAxKSkKKyAgICAgICAgcHJp
bnQoInN0YXRpYyBjb25zdGV4cHIgaW50IG1heFRva2VuTGVuZ3RoID0gJWQ7IiAlIChzZWxmLm1h
eExlbmd0aCgpICsgMSkpCiAgICAgICAgIHByaW50KCIiKQogICAgICAgICBwcmludCgidGVtcGxh
dGUgPD4iKQogICAgICAgICBwcmludCgidGVtcGxhdGUgPGJvb2wgc2hvdWxkQ3JlYXRlSWRlbnRp
Zmllcj4gQUxXQVlTX0lOTElORSBKU1Rva2VuVHlwZSBMZXhlcjxVQ2hhcj46OnBhcnNlS2V5d29y
ZChKU1Rva2VuRGF0YSogZGF0YSkiKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHJldmlzaW9u
IDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTYsNyArMTk2LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHR5cGVkZWYgSlNOb25G
aW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpNYXNxdWVyYWRlc0FzVW5kZWZpbmVkOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEpTQzo6TWFzcXVlcmFkZXNBc1VuZGVmaW5lZDsKIAogICAgIHN0YXRpYyBN
YXNxdWVyYWRlciogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
ICAgICB7CkBAIC00OTMsNyArNDkzLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gb2JqZWN0
OwogICAgIH0KIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxz
ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOwog
CiAgICAgREVDTEFSRV9JTkZPOwogICAgIHN0YXRpYyBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RU
YWJsZSBzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RSZWdFeHAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0UmVnRXhwLmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RSZWdFeHAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogIENvcHlyaWdodCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMTcsNyArMTE3LDcgQEAgcHVibGljOgogCiAg
ICAgREVDTEFSRV9JTkZPOwogCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdG9y
ID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3RvciA9IGZh
bHNlOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0FQSVZhbHVlV3JhcHBlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNBUElWYWx1ZVdyYXBwZXIuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0FQSVZhbHVlV3JhcHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3
ICszMyw3IEBAIGNsYXNzIEpTQVBJVmFsdWVXcmFwcGVyIGZpbmFsIDogcHVibGljIEoKICAgICBm
cmllbmQgSlNWYWx1ZSBqc0FQSVZhbHVlV3JhcHBlcihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKIHB1
YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1v
cnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgSlNWYWx1ZSB2
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUuZ2V0KCk7IH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCShyZXZpc2lv
biAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1
Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiBjbGFzcyBKU0NhbGxiYWNrQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSlNEZXN0cnVjdGli
bGVPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNEZXN0cnVjdGlibGVPYmplY3QgQmFz
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IEltcGxlbWVudHNEZWZhdWx0SGFz
SW5zdGFuY2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZTsKIAogICAgIHN0YXRpYyBKU0NhbGxiYWNrQ29uc3RydWN0b3Iq
IGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBKU0NsYXNzUmVmIGNsYXNzUmVmLCBKU09iamVjdENhbGxBc0Nv
bnN0cnVjdG9yQ2FsbGJhY2sgY2FsbGJhY2spIAogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMTMyLDcgKzEzMiw3IEBAIHByb3RlY3RlZDoKIAogcHVibGljOgogICAgIHR5cGVkZWYg
UGFyZW50IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBQcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcgfCBPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRl
eEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgT3ZlcnJp
ZGVzR2V0UHJvcGVydHlOYW1lcyB8IE92ZXJyaWRlc0dldENhbGxEYXRhOworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IFByb2hpYml0c1Byb3BlcnR5Q2FjaGluZyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFpl
cm8gfCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwg
T3ZlcnJpZGVzR2V0Q2FsbERhdGE7CiAgICAgc3RhdGljX2Fzc2VydCghKFN0cnVjdHVyZUZsYWdz
ICYgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSksICJ1c2luZyBjdXN0b21IYXNJbnN0YW5j
ZSIpOwogCiAgICAgfkpTQ2FsbGJhY2tPYmplY3QoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMTMsIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC01Niw3ICs1Niw3IEBACiAjaWYgT1MoREFSV0lOKQogI2luY2x1ZGUgPG1hY2gt
by9keWxkLmg+CiAKLXN0YXRpYyBjb25zdCBpbnQzMl90IHdlYmtpdEZpcnN0VmVyc2lvbldpdGhD
b25jdXJyZW50R2xvYmFsQ29udGV4dHMgPSAweDIxMDA1MDA7IC8vIDUyOC41LjAKK3N0YXRpYyBj
b25zdGV4cHIgaW50MzJfdCB3ZWJraXRGaXJzdFZlcnNpb25XaXRoQ29uY3VycmVudEdsb2JhbENv
bnRleHRzID0gMHgyMTAwNTAwOyAvLyA1MjguNS4wCiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IEpTQzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCShy
ZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1h
cC5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMtMjAxNSwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ2LDExICs0NiwxMSBAQAogCiAjaWYgUExB
VEZPUk0oQVBQTEVUVikKICNlbHNlCi1zdGF0aWMgY29uc3QgaW50MzJfdCBmaXJzdEphdmFTY3Jp
cHRDb3JlVmVyc2lvbldpdGhJbml0Q29uc3RydWN0b3JTdXBwb3J0ID0gMHgyMUEwNDAwOyAvLyA1
MzguNC4wCitzdGF0aWMgY29uc3RleHByIGludDMyX3QgZmlyc3RKYXZhU2NyaXB0Q29yZVZlcnNp
b25XaXRoSW5pdENvbnN0cnVjdG9yU3VwcG9ydCA9IDB4MjFBMDQwMDsgLy8gNTM4LjQuMAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgY29uc3QgdWludDMyX3QgZmlyc3RTREtWZXJz
aW9uV2l0aEluaXRDb25zdHJ1Y3RvclN1cHBvcnQgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzA7Citz
dGF0aWMgY29uc3RleHByIHVpbnQzMl90IGZpcnN0U0RLVmVyc2lvbldpdGhJbml0Q29uc3RydWN0
b3JTdXBwb3J0ID0gRFlMRF9JT1NfVkVSU0lPTl8xMF8wOwogI2VsaWYgUExBVEZPUk0oTUFDKQot
c3RhdGljIGNvbnN0IHVpbnQzMl90IGZpcnN0U0RLVmVyc2lvbldpdGhJbml0Q29uc3RydWN0b3JT
dXBwb3J0ID0gMHhBMEEwMDsgLy8gT1NYIDEwLjEwLjAKK3N0YXRpYyBjb25zdGV4cHIgdWludDMy
X3QgZmlyc3RTREtWZXJzaW9uV2l0aEluaXRDb25zdHJ1Y3RvclN1cHBvcnQgPSAweEEwQTAwOyAv
LyBPU1ggMTAuMTAuMAogI2VuZGlmCiAjZW5kaWYKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNwcAkocmV2aXNp
b24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Db21wYXJlQW5k
U3dhcFRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDExICs0MCwxMSBAQCBwdWJsaWM6CiAgICAg
aW5saW5lIHNpemVfdCBudW1CaXRzKCkgY29uc3QgeyByZXR1cm4gd29yZHMgKiB3b3JkU2l6ZTsg
fQogCiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgU2l6ZSA9IDQwOTYqMTA7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgU2l6ZSA9IDQwOTYqMTA7CiAKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgd29yZFNpemUgPSBzaXplb2YodWludDhfdCkgKiA4OwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCB3b3JkcyA9IChTaXplICsgd29yZFNpemUgLSAxKSAvIHdvcmRTaXpl
OwotICAgIHN0YXRpYyBjb25zdCB1aW50OF90IG9uZSA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCB3b3JkU2l6ZSA9IHNpemVvZih1aW50OF90KSAqIDg7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCB3b3JkcyA9IChTaXplICsgd29yZFNpemUgLSAxKSAvIHdvcmRTaXpl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBvbmUgPSAxOwogCiAgICAgdWludDhfdCBi
aXRzW3dvcmRzXTsKIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1R5
cGVkQXJyYXlDVGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy9UeXBlZEFycmF5Q1Rlc3QuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1R5cGVkQXJyYXlDVGVzdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNDAsNyArNDAsNyBAQCBzdGF0aWMgdm9pZCBmcmVlUHRyKHZvaWQqIHB0ciwgdm9pZCopCiAg
ICAgZnJlZShwdHIpOwogfQogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtTGVuZ3RocyA9IDM7
CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUxlbmd0aHMgPSAzOwogCiBzdGF0aWMgY29u
c3QgdW5zaWduZWQgbGVuZ3Roc1tudW1MZW5ndGhzXSA9CiB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0JKHdvcmtpbmcgY29weSkKQEAg
LTEzNDAsNyArMTM0MCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RPYmplY3RpdmVDQVBJTWFpbigpCiAg
ICAgfQogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBjb3VudCA9IDEwMDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBjb3Vu
dCA9IDEwMDsKICAgICAgICAgTlNNdXRhYmxlQXJyYXkgKmFycmF5ID0gW05TTXV0YWJsZUFycmF5
IGFycmF5V2l0aENhcGFjaXR5OmNvdW50XTsKICAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0g
W1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVy
LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
QVJNdjdBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDkgKzEwMyw5IEBAIGNsYXNz
IEFSTVRodW1iSW1tZWRpYXRlIHsKICAgICBmcmllbmQgY2xhc3MgQVJNdjdBc3NlbWJsZXI7CiAK
ICAgICB0eXBlZGVmIHVpbnQ4X3QgVGh1bWJJbW1lZGlhdGVUeXBlOwotICAgIHN0YXRpYyBjb25z
dCBUaHVtYkltbWVkaWF0ZVR5cGUgVHlwZUludmFsaWQgPSAwOwotICAgIHN0YXRpYyBjb25zdCBU
aHVtYkltbWVkaWF0ZVR5cGUgVHlwZUVuY29kZWQgPSAxOwotICAgIHN0YXRpYyBjb25zdCBUaHVt
YkltbWVkaWF0ZVR5cGUgVHlwZVVJbnQxNiA9IDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBUaHVt
YkltbWVkaWF0ZVR5cGUgVHlwZUludmFsaWQgPSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgVGh1
bWJJbW1lZGlhdGVUeXBlIFR5cGVFbmNvZGVkID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIFRo
dW1iSW1tZWRpYXRlVHlwZSBUeXBlVUludDE2ID0gMjsKIAogICAgIHR5cGVkZWYgdW5pb24gewog
ICAgICAgICBpbnQxNl90IGFzSW50OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9Bc3NlbWJsZXJCdWZmZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiwgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTY4LDcgKzY4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFz
cyBBc3NlbWJsZXJEYXRhIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXNzZW1ibGVy
RGF0YSk7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgSW5saW5lQ2FwYWNpdHkgPSAxMjg7
CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IElubGluZUNhcGFjaXR5ID0gMTI4Owog
ICAgIHB1YmxpYzoKICAgICAgICAgQXNzZW1ibGVyRGF0YSgpCiAgICAgICAgICAgICA6IG1fYnVm
ZmVyKG1faW5saW5lQnVmZmVyKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9Bc3NlbWJsZXJDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL0Fzc2VtYmxlckNvbW1vbi5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fzc2VtYmxlckNvbW1vbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCwgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI4Miw3ICsyODIsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gaW1t
TiA8PCAxMiB8IGltbXIgPDwgNiB8IGltbXM7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0IGlu
dCBJbnZhbGlkTG9naWNhbEltbWVkaWF0ZSA9IC0xOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50
IEludmFsaWRMb2dpY2FsSW1tZWRpYXRlID0gLTE7CiAKICAgICBpbnQgbV92YWx1ZTsKIH07Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwMyw3ICs1MDMsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZXRGbG9hdChGUFJlZ2lzdGVySUQpIHsgcmV0KCk7IH0KICAgICB2b2lk
IHJldERvdWJsZShGUFJlZ2lzdGVySUQpIHsgcmV0KCk7IH0KIAotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBCbGluZGluZ01vZHVsdXMgPSA2NDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIEJsaW5kaW5nTW9kdWx1cyA9IDY0OwogICAgIGJvb2wgc2hvdWxkQ29uc2lkZXJCbGluZGlu
ZygpCiAgICAgewogICAgICAgICByZXR1cm4gIShyYW5kb20oKSAmIChCbGluZGluZ01vZHVsdXMg
LSAxKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNNjQuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zOCw4ICszOCw4IEBAIHVzaW5nIEFzc2VtYmxlciA9IFRBUkdFVF9BU1NFTUJMRVI7CiAK
IGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxl
cjxBc3NlbWJsZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtR1BS
cyA9IDMyOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1GUFJzID0gMzI7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1HUFJzID0gMzI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBudW1GUFJzID0gMzI7CiAgICAgCiAgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdp
c3RlcklEIGRhdGFUZW1wUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6aXAwOwogICAgIHN0YXRp
YyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBtZW1vcnlUZW1wUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVy
czo6aXAxOwpAQCAtNTEsMTEgKzUxLDExIEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoK
LSAgICBzdGF0aWMgY29uc3QgQVJNNjRSZWdpc3RlcnM6OkZQUmVnaXN0ZXJJRCBmcFRlbXBSZWdp
c3RlciA9IEFSTTY0UmVnaXN0ZXJzOjpxMzE7Ci0gICAgc3RhdGljIGNvbnN0IEFzc2VtYmxlcjo6
U2V0RmxhZ3MgUyA9IEFzc2VtYmxlcjo6UzsKLSAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBtYXNr
SGFsZldvcmQwID0gMHhmZmZmbDsKLSAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBtYXNrSGFsZldv
cmQxID0gMHhmZmZmMDAwMGw7Ci0gICAgc3RhdGljIGNvbnN0IGludDY0X3QgbWFza1VwcGVyV29y
ZCA9IDB4ZmZmZmZmZmYwMDAwMDAwMGw7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBUk02NFJlZ2lz
dGVyczo6RlBSZWdpc3RlcklEIGZwVGVtcFJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OnEzMTsK
KyAgICBzdGF0aWMgY29uc3RleHByIEFzc2VtYmxlcjo6U2V0RmxhZ3MgUyA9IEFzc2VtYmxlcjo6
UzsKKyAgICBzdGF0aWMgY29uc3RleHByIGludDY0X3QgbWFza0hhbGZXb3JkMCA9IDB4ZmZmZmw7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQ2NF90IG1hc2tIYWxmV29yZDEgPSAweGZmZmYwMDAw
bDsKKyAgICBzdGF0aWMgY29uc3RleHByIGludDY0X3QgbWFza1VwcGVyV29yZCA9IDB4ZmZmZmZm
ZmYwMDAwMDAwMGw7CiAKICAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBJTlNUUlVDVElPTl9T
SVpFID0gNDsKIApAQCAtNzUsOCArNzUsOCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBBc3NlbWJs
ZXI6Okp1bXBMaW5rVHlwZSBKdW1wTGlua1R5cGU7CiAgICAgdHlwZWRlZiBBc3NlbWJsZXI6OkNv
bmRpdGlvbiBDb25kaXRpb247CiAKLSAgICBzdGF0aWMgY29uc3QgQXNzZW1ibGVyOjpDb25kaXRp
b24gRGVmYXVsdENvbmRpdGlvbiA9IEFzc2VtYmxlcjo6Q29uZGl0aW9uSW52YWxpZDsKLSAgICBz
dGF0aWMgY29uc3QgQXNzZW1ibGVyOjpKdW1wVHlwZSBEZWZhdWx0SnVtcCA9IEFzc2VtYmxlcjo6
SnVtcE5vQ29uZGl0aW9uRml4ZWRTaXplOworICAgIHN0YXRpYyBjb25zdGV4cHIgQXNzZW1ibGVy
OjpDb25kaXRpb24gRGVmYXVsdENvbmRpdGlvbiA9IEFzc2VtYmxlcjo6Q29uZGl0aW9uSW52YWxp
ZDsKKyAgICBzdGF0aWMgY29uc3RleHByIEFzc2VtYmxlcjo6SnVtcFR5cGUgRGVmYXVsdEp1bXAg
PSBBc3NlbWJsZXI6Okp1bXBOb0NvbmRpdGlvbkZpeGVkU2l6ZTsKIAogICAgIFZlY3RvcjxMaW5r
UmVjb3JkLCAwLCBVbnNhZmVWZWN0b3JPdmVyZmxvdz4mIGp1bXBzVG9MaW5rKCkgeyByZXR1cm4g
bV9hc3NlbWJsZXIuanVtcHNUb0xpbmsoKTsgfQogICAgIHN0YXRpYyBib29sIGNhbkNvbXBhY3Qo
SnVtcFR5cGUganVtcFR5cGUpIHsgcmV0dXJuIEFzc2VtYmxlcjo6Y2FuQ29tcGFjdChqdW1wVHlw
ZSk7IH0KQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAgIHRlbXBsYXRlIDxBc3NlbWJsZXI6
OkNvcHlGdW5jdGlvbiBjb3B5PgogICAgIHN0YXRpYyB2b2lkIGxpbmsoTGlua1JlY29yZCYgcmVj
b3JkLCB1aW50OF90KiBmcm9tLCBjb25zdCB1aW50OF90KiBmcm9tSW5zdHJ1Y3Rpb24sIHVpbnQ4
X3QqIHRvKSB7IHJldHVybiBBc3NlbWJsZXI6Omxpbms8Y29weT4ocmVjb3JkLCBmcm9tLCBmcm9t
SW5zdHJ1Y3Rpb24sIHRvKTsgfQogCi0gICAgc3RhdGljIGNvbnN0IFNjYWxlIFNjYWxlUHRyID0g
VGltZXNFaWdodDsKKyAgICBzdGF0aWMgY29uc3RleHByIFNjYWxlIFNjYWxlUHRyID0gVGltZXNF
aWdodDsKIAogICAgIHN0YXRpYyBib29sIGlzQ29tcGFjdFB0ckFsaWduZWRBZGRyZXNzT2Zmc2V0
KHB0cmRpZmZfdCB2YWx1ZSkKICAgICB7CkBAIC0xMzcsOSArMTM3LDkgQEAgcHVibGljOgogICAg
ICAgICBEb3VibGVMZXNzVGhhbk9yRXF1YWxPclVub3JkZXJlZCA9IEFzc2VtYmxlcjo6Q29uZGl0
aW9uTEUsCiAgICAgfTsKIAotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHN0YWNrUG9pbnRl
clJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OnNwOwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIGZyYW1lUG9pbnRlclJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OmZwOwotICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIGxpbmtSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjpscjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVySUQgc3RhY2tQb2ludGVyUmVnaXN0ZXIgPSBBUk02
NFJlZ2lzdGVyczo6c3A7CisgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGZyYW1lUG9p
bnRlclJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OmZwOworICAgIHN0YXRpYyBjb25zdGV4cHIg
UmVnaXN0ZXJJRCBsaW5rUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6bHI7CiAKICAgICAvLyBG
SVhNRTogR2V0IHJlYXNvbmFibGUgaW1wbGVtZW50YXRpb25zIGZvciB0aGVzZQogICAgIHN0YXRp
YyBib29sIHNob3VsZEJsaW5kRm9yU3BlY2lmaWNBcmNoKHVpbnQzMl90IHZhbHVlKSB7IHJldHVy
biB2YWx1ZSA+PSAweDAwZmZmZmZmOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjRFLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0RS5oCShyZXZpc2lvbiAyNDk5
NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
NjRFLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgICAg
IG1fYXNzZW1ibGVyLnhwYWNkKHRhcmdldCk7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0IFJl
Z2lzdGVySUQgSW52YWxpZEdQUiAgPSBzdGF0aWNfY2FzdDxSZWdpc3RlcklEPigtMSk7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIEludmFsaWRHUFIgID0gc3RhdGljX2Nhc3Q8UmVn
aXN0ZXJJRD4oLTEpOwogCiAgICAgZW51bSBjbGFzcyBDYWxsU2lnbmF0dXJlVHlwZSB7CiAgICAg
ICAgIENGdW5jdGlvbkNhbGwsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNdjcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAkocmV2aXNpb24gMjQ5OTU5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LTIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zNiwxNSArMzYs
MTUgQEAgbmFtZXNwYWNlIEpTQyB7CiB1c2luZyBBc3NlbWJsZXIgPSBUQVJHRVRfQVNTRU1CTEVS
OwogCiBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTXY3IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3Nl
bWJsZXI8QXNzZW1ibGVyPiB7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgZGF0YVRlbXBS
ZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6aXA7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQg
YWRkcmVzc1RlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjY7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBSZWdpc3RlcklEIGRhdGFUZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OmlwOworICAg
IHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBhZGRyZXNzVGVtcFJlZ2lzdGVyID0gQVJNUmVn
aXN0ZXJzOjpyNjsKIAotICAgIHN0YXRpYyBjb25zdCBBUk1SZWdpc3RlcnM6OkZQRG91YmxlUmVn
aXN0ZXJJRCBmcFRlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6ZDc7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBBUk1SZWdpc3RlcnM6OkZQRG91YmxlUmVnaXN0ZXJJRCBmcFRlbXBSZWdpc3RlciA9
IEFSTVJlZ2lzdGVyczo6ZDc7CiAgICAgaW5saW5lIEFSTVJlZ2lzdGVyczo6RlBTaW5nbGVSZWdp
c3RlcklEIGZwVGVtcFJlZ2lzdGVyQXNTaW5nbGUoKSB7IHJldHVybiBBUk1SZWdpc3RlcnM6OmFz
U2luZ2xlKGZwVGVtcFJlZ2lzdGVyKTsgfQogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIG51bUdQUnMgPSAxNjsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtRlBScyA9
IDE2OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtR1BScyA9IDE2OworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtRlBScyA9IDE2OwogICAgIAogICAgIE1hY3JvQXNz
ZW1ibGVyQVJNdjcoKQogICAgICAgICA6IG1fbWFrZUp1bXBQYXRjaGFibGUoZmFsc2UpCkBAIC01
Niw4ICs1Niw4IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIEFSTXY3QXNzZW1ibGVyOjpKdW1wTGlu
a1R5cGUgSnVtcExpbmtUeXBlOwogICAgIHR5cGVkZWYgQVJNdjdBc3NlbWJsZXI6OkNvbmRpdGlv
biBDb25kaXRpb247CiAKLSAgICBzdGF0aWMgY29uc3QgQVJNdjdBc3NlbWJsZXI6OkNvbmRpdGlv
biBEZWZhdWx0Q29uZGl0aW9uID0gQVJNdjdBc3NlbWJsZXI6OkNvbmRpdGlvbkludmFsaWQ7Ci0g
ICAgc3RhdGljIGNvbnN0IEFSTXY3QXNzZW1ibGVyOjpKdW1wVHlwZSBEZWZhdWx0SnVtcCA9IEFS
TXY3QXNzZW1ibGVyOjpKdW1wTm9Db25kaXRpb25GaXhlZFNpemU7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBBUk12N0Fzc2VtYmxlcjo6Q29uZGl0aW9uIERlZmF1bHRDb25kaXRpb24gPSBBUk12N0Fz
c2VtYmxlcjo6Q29uZGl0aW9uSW52YWxpZDsKKyAgICBzdGF0aWMgY29uc3RleHByIEFSTXY3QXNz
ZW1ibGVyOjpKdW1wVHlwZSBEZWZhdWx0SnVtcCA9IEFSTXY3QXNzZW1ibGVyOjpKdW1wTm9Db25k
aXRpb25GaXhlZFNpemU7CiAKICAgICBzdGF0aWMgYm9vbCBpc0NvbXBhY3RQdHJBbGlnbmVkQWRk
cmVzc09mZnNldChwdHJkaWZmX3QgdmFsdWUpCiAgICAgewpAQCAtMTAzLDcgKzEwMyw3IEBAIHB1
YmxpYzoKICAgICB9OwogICAgIAogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBTY2FsZSBTY2Fs
ZVB0ciA9IFRpbWVzRm91cjsKKyAgICBzdGF0aWMgY29uc3RleHByIFNjYWxlIFNjYWxlUHRyID0g
VGltZXNGb3VyOwogCiAgICAgZW51bSBSZWxhdGlvbmFsQ29uZGl0aW9uIHsKICAgICAgICAgRXF1
YWwgPSBBUk12N0Fzc2VtYmxlcjo6Q29uZGl0aW9uRVEsCkBAIC0xNDMsOSArMTQzLDkgQEAgcHVi
bGljOgogICAgICAgICBEb3VibGVMZXNzVGhhbk9yRXF1YWxPclVub3JkZXJlZCA9IEFSTXY3QXNz
ZW1ibGVyOjpDb25kaXRpb25MRSwKICAgICB9OwogCi0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgc3RhY2tQb2ludGVyUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnNwOwotICAgIHN0YXRpYyBj
b25zdCBSZWdpc3RlcklEIGZyYW1lUG9pbnRlclJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpmcDsK
LSAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBsaW5rUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6
OmxyOworICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBzdGFja1BvaW50ZXJSZWdpc3Rl
ciA9IEFSTVJlZ2lzdGVyczo6c3A7CisgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGZy
YW1lUG9pbnRlclJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpmcDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIFJlZ2lzdGVySUQgbGlua1JlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpscjsKIAogICAgIC8v
IEludGVnZXIgYXJpdGhtZXRpYyBvcGVyYXRpb25zOgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwOCw3ICs0MDgsNyBA
QCBzdHJ1Y3QgTWFjcm9Bc3NlbWJsZXJDb2RlUHRySGFzaCB7CiAgICAgewogICAgICAgICByZXR1
cm4gYSA9PSBiOwogICAgIH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0Nv
bXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIC8vIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJNSVBTLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlck1JUFMuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTUlQUyBUZWNobm9s
b2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM4
LDggKzM4LDggQEAgdXNpbmcgQXNzZW1ibGVyID0gVEFSR0VUX0FTU0VNQkxFUjsKIGNsYXNzIE1h
Y3JvQXNzZW1ibGVyTUlQUyA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFzc2VtYmxl
cj4gewogcHVibGljOgogICAgIHR5cGVkZWYgTUlQU1JlZ2lzdGVyczo6RlBSZWdpc3RlcklEIEZQ
UmVnaXN0ZXJJRDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtR1BScyA9IDMyOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1GUFJzID0gMzI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBudW1HUFJzID0gMzI7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBu
dW1GUFJzID0gMzI7CiAKICAgICBNYWNyb0Fzc2VtYmxlck1JUFMoKQogICAgICAgICA6IG1fZml4
ZWRXaWR0aChmYWxzZSkKQEAgLTYxLDIxICs2MSwyMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBnZXRMU0JTZXQodik7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0IFNjYWxlIFNjYWxlUHRy
ID0gVGltZXNGb3VyOworICAgIHN0YXRpYyBjb25zdGV4cHIgU2NhbGUgU2NhbGVQdHIgPSBUaW1l
c0ZvdXI7CiAKICAgICAvLyBGb3Igc3RvcmluZyBpbW1lZGlhdGUgbnVtYmVyCi0gICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVySUQgaW1tVGVtcFJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6dDA7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGltbVRlbXBSZWdpc3RlciA9IE1JUFNSZWdp
c3RlcnM6OnQwOwogICAgIC8vIEZvciBzdG9yaW5nIGRhdGEgbG9hZGVkIGZyb20gdGhlIG1lbW9y
eQotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGRhdGFUZW1wUmVnaXN0ZXIgPSBNSVBTUmVn
aXN0ZXJzOjp0MTsKKyAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVySUQgZGF0YVRlbXBSZWdp
c3RlciA9IE1JUFNSZWdpc3RlcnM6OnQxOwogICAgIC8vIEZvciBzdG9yaW5nIGFkZHJlc3MgYmFz
ZQotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGFkZHJUZW1wUmVnaXN0ZXIgPSBNSVBTUmVn
aXN0ZXJzOjp0NzsKKyAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVySUQgYWRkclRlbXBSZWdp
c3RlciA9IE1JUFNSZWdpc3RlcnM6OnQ3OwogICAgIC8vIEZvciBzdG9yaW5nIGNvbXBhcmUgcmVz
dWx0Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY21wVGVtcFJlZ2lzdGVyID0gTUlQU1Jl
Z2lzdGVyczo6dDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGNtcFRlbXBSZWdp
c3RlciA9IE1JUFNSZWdpc3RlcnM6OnQ4OwogCiAgICAgLy8gRlAgdGVtcCByZWdpc3RlcgotICAg
IHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIgPSBNSVBTUmVnaXN0ZXJz
OjpmMTY7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIg
PSBNSVBTUmVnaXN0ZXJzOjpmMTY7CiAKLSAgICBzdGF0aWMgY29uc3QgaW50IE1heGltdW1Db21w
YWN0UHRyQWxpZ25lZEFkZHJlc3NPZmZzZXQgPSAweDdGRkZGRkZGOworICAgIHN0YXRpYyBjb25z
dGV4cHIgaW50IE1heGltdW1Db21wYWN0UHRyQWxpZ25lZEFkZHJlc3NPZmZzZXQgPSAweDdGRkZG
RkZGOwogCiAgICAgZW51bSBSZWxhdGlvbmFsQ29uZGl0aW9uIHsKICAgICAgICAgRXF1YWwsCkBA
IC0xMTgsOSArMTE4LDkgQEAgcHVibGljOgogICAgICAgICBTY2FsZQogICAgIH07CiAKLSAgICBz
dGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBzdGFja1BvaW50ZXJSZWdpc3RlciA9IE1JUFNSZWdpc3Rl
cnM6OnNwOwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGZyYW1lUG9pbnRlclJlZ2lzdGVy
ID0gTUlQU1JlZ2lzdGVyczo6ZnA7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJu
QWRkcmVzc1JlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6cmE7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBSZWdpc3RlcklEIHN0YWNrUG9pbnRlclJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6c3A7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGZyYW1lUG9pbnRlclJlZ2lzdGVyID0gTUlQ
U1JlZ2lzdGVyczo6ZnA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIHJldHVybkFk
ZHJlc3NSZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnJhOwogCiAgICAgLy8gSW50ZWdlciBhcml0
aG1ldGljIG9wZXJhdGlvbnM6CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2LmgJKHJldmlzaW9uIDI0OTk1OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODYuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgt
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDEwICszMywxMCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xh
c3MgTWFjcm9Bc3NlbWJsZXJYODYgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJYODZDb21tb24gewog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1HUFJzID0gODsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgbnVtRlBScyA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBudW1HUFJzID0gODsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUZQUnMg
PSA4OwogICAgIAotICAgIHN0YXRpYyBjb25zdCBTY2FsZSBTY2FsZVB0ciA9IFRpbWVzRm91cjsK
KyAgICBzdGF0aWMgY29uc3RleHByIFNjYWxlIFNjYWxlUHRyID0gVGltZXNGb3VyOwogCiAgICAg
dXNpbmcgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmFkZDMyOwogICAgIHVzaW5nIE1hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uOjphbmQzMjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHJldmlzaW9u
IDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDgtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgTWFj
cm9Bc3NlbWJsZXJYODZDb21tb24gOiBwdWJsaWMgQQogcHVibGljOgogI2lmIENQVShYODZfNjQp
CiAgICAgLy8gVXNlIHRoaXMgZGlyZWN0bHkgb25seSBpZiB5b3UncmUgbm90IGdlbmVyYXRpbmcg
Y29kZSB3aXRoIGl0LgotICAgIHN0YXRpYyBjb25zdCBYODZSZWdpc3RlcnM6OlJlZ2lzdGVySUQg
c19zY3JhdGNoUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxMTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIFg4NlJlZ2lzdGVyczo6UmVnaXN0ZXJJRCBzX3NjcmF0Y2hSZWdpc3RlciA9IFg4NlJlZ2lz
dGVyczo6cjExOwogCiAgICAgLy8gVXNlIHRoaXMgd2hlbiBnZW5lcmF0aW5nIGNvZGUgc28gdGhh
dCB3ZSBnZXQgZW5mb3JjZW1lbnQgb2YgdGhlIGRpc2FsbG93aW5nIG9mIHNjcmF0Y2ggcmVnaXN0
ZXIKICAgICAvLyB1c2FnZS4KQEAgLTUyLDkgKzUyLDkgQEAgcHVibGljOgogI2VuZGlmCiAgICAg
CiBwcm90ZWN0ZWQ6Ci0gICAgc3RhdGljIGNvbnN0IGludCBEb3VibGVDb25kaXRpb25CaXRJbnZl
cnQgPSAweDEwOwotICAgIHN0YXRpYyBjb25zdCBpbnQgRG91YmxlQ29uZGl0aW9uQml0U3BlY2lh
bCA9IDB4MjA7Ci0gICAgc3RhdGljIGNvbnN0IGludCBEb3VibGVDb25kaXRpb25CaXRzID0gRG91
YmxlQ29uZGl0aW9uQml0SW52ZXJ0IHwgRG91YmxlQ29uZGl0aW9uQml0U3BlY2lhbDsKKyAgICBz
dGF0aWMgY29uc3RleHByIGludCBEb3VibGVDb25kaXRpb25CaXRJbnZlcnQgPSAweDEwOworICAg
IHN0YXRpYyBjb25zdGV4cHIgaW50IERvdWJsZUNvbmRpdGlvbkJpdFNwZWNpYWwgPSAweDIwOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IERvdWJsZUNvbmRpdGlvbkJpdHMgPSBEb3VibGVDb25k
aXRpb25CaXRJbnZlcnQgfCBEb3VibGVDb25kaXRpb25CaXRTcGVjaWFsOwogCiBwdWJsaWM6CiAg
ICAgdHlwZWRlZiBYODZBc3NlbWJsZXI6OlhNTVJlZ2lzdGVySUQgWE1NUmVnaXN0ZXJJRDsKQEAg
LTEwNiw4ICsxMDYsOCBAQCBwdWJsaWM6CiAgICAgICAgICEoKFg4NkFzc2VtYmxlcjo6Q29uZGl0
aW9uRSB8IFg4NkFzc2VtYmxlcjo6Q29uZGl0aW9uTkUgfCBYODZBc3NlbWJsZXI6OkNvbmRpdGlv
bkEgfCBYODZBc3NlbWJsZXI6OkNvbmRpdGlvbkFFIHwgWDg2QXNzZW1ibGVyOjpDb25kaXRpb25C
IHwgWDg2QXNzZW1ibGVyOjpDb25kaXRpb25CRSkgJiBEb3VibGVDb25kaXRpb25CaXRzKSwKICAg
ICAgICAgRG91YmxlQ29uZGl0aW9uQml0c19zaG91bGRfbm90X2ludGVyZmVyZV93aXRoX1g4NkFz
c2VtYmxlcl9Db25kaXRpb25fY29kZXMpOwogCi0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQg
c3RhY2tQb2ludGVyUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVzcDsKLSAgICBzdGF0aWMgY29u
c3QgUmVnaXN0ZXJJRCBmcmFtZVBvaW50ZXJSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWJwOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBzdGFja1BvaW50ZXJSZWdpc3RlciA9IFg4
NlJlZ2lzdGVyczo6ZXNwOworICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBmcmFtZVBv
aW50ZXJSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWJwOwogICAgIAogICAgIHN0YXRpYyBib29s
IGNhbkJsaW5kKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHNob3VsZEJsaW5k
Rm9yU3BlY2lmaWNBcmNoKHVpbnQzMl90IHZhbHVlKSB7IHJldHVybiB2YWx1ZSA+PSAweDAwZmZm
ZmZmOyB9CkBAIC0xMTAzLDcgKzExMDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhYnNEb3VibGUo
RlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAgICAgIEFTU0VS
VChzcmMgIT0gZHN0KTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBuZWdhdGl2ZVplcm9D
b25zdGFudCA9IC0wLjA7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIG5lZ2F0aXZl
WmVyb0NvbnN0YW50ID0gLTAuMDsKICAgICAgICAgbG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZu
ZWdhdGl2ZVplcm9Db25zdGFudCksIGRzdCk7CiAgICAgICAgIG1fYXNzZW1ibGVyLmFuZG5wZF9y
cihzcmMsIGRzdCk7CiAgICAgfQpAQCAtMTExMSw3ICsxMTExLDcgQEAgcHVibGljOgogICAgIHZv
aWQgbmVnYXRlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkc3QpCiAgICAg
ewogICAgICAgICBBU1NFUlQoc3JjICE9IGRzdCk7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBkb3Vi
bGUgbmVnYXRpdmVaZXJvQ29uc3RhbnQgPSAtMC4wOworICAgICAgICBzdGF0aWMgY29uc3RleHBy
IGRvdWJsZSBuZWdhdGl2ZVplcm9Db25zdGFudCA9IC0wLjA7CiAgICAgICAgIGxvYWREb3VibGUo
VHJ1c3RlZEltbVB0cigmbmVnYXRpdmVaZXJvQ29uc3RhbnQpLCBkc3QpOwogICAgICAgICBtX2Fz
c2VtYmxlci54b3JwZF9ycihzcmMsIGRzdCk7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAkocmV2
aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsMTAgKzM3LDEwIEBAIG5hbWVz
cGFjZSBKU0MgewogCiBjbGFzcyBNYWNyb0Fzc2VtYmxlclg4Nl82NCA6IHB1YmxpYyBNYWNyb0Fz
c2VtYmxlclg4NkNvbW1vbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51
bUdQUnMgPSAxNjsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtRlBScyA9IDE2OworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtR1BScyA9IDE2OworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgbnVtRlBScyA9IDE2OwogICAgIAotICAgIHN0YXRpYyBjb25zdCBTY2Fs
ZSBTY2FsZVB0ciA9IFRpbWVzRWlnaHQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBTY2FsZSBTY2Fs
ZVB0ciA9IFRpbWVzRWlnaHQ7CiAKICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6
YWRkMzI7CiAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmFuZDMyOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCShyZXZp
c2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2Vt
Ymxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAyOSw3ICs0MDI5LDcgQEAgcHJpdmF0ZToKICAg
ICB9CiAKICAgICBjbGFzcyBYODZJbnN0cnVjdGlvbkZvcm1hdHRlciB7Ci0gICAgICAgIHN0YXRp
YyBjb25zdCBpbnQgbWF4SW5zdHJ1Y3Rpb25TaXplID0gMTY7CisgICAgICAgIHN0YXRpYyBjb25z
dGV4cHIgaW50IG1heEluc3RydWN0aW9uU2l6ZSA9IDE2OwogCiAgICAgcHVibGljOgogICAgICAg
ICBlbnVtIE1vZFJtTW9kZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYW5r
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFuay5oCShyZXZp
c2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYW5rLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzYsNyArMzYsNyBAQCBlbnVtIEJhbmsgOiBpbnQ4X3QgewogICAgIEZQCiB9Owog
Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtQmFua3MgPSAyOworc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBudW1CYW5rcyA9IDI7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CiB2b2lkIGZv
ckVhY2hCYW5rKGNvbnN0IEZ1bmMmIGZ1bmMpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDaGVja1NwZWNpYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDaGVja1NwZWNpYWwuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNDMsNyArMTQz
LDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBDaGVja1NwZWNpYWxLZXlIYXNoIHsKICAgICBzdGF0aWMg
dW5zaWduZWQgaGFzaChjb25zdCBDaGVja1NwZWNpYWw6OktleSYga2V5KSB7IHJldHVybiBrZXku
aGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgQ2hlY2tTcGVjaWFsOjpLZXkm
IGEsIGNvbnN0IENoZWNrU3BlY2lhbDo6S2V5JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBz
dGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0g
dHJ1ZTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwpAQCAtMTU4LDcgKzE1OCw3IEBA
IHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPEpTQzo6QjM6OkMKIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxK
U0M6OkIzOjpDaGVja1NwZWNpYWw6OktleT4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpC
Mzo6Q2hlY2tTcGVjaWFsOjpLZXk+IHsKICAgICAvLyBJIGRvbid0IHdhbnQgdG8gdGhpbmsgYWJv
dXQgdGhpcyB2ZXJ5IGhhcmQsIGl0J3Mgbm90IHdvcnRoIGl0LiBJJ20gYSBiZSBjb25zZXJ2YXRp
dmUuCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxp
Y2F0ZVRhaWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNE
dXBsaWNhdGVUYWlscy5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw3ICs0NSw3IEBA
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogbmFtZXNwYWNlIHsKIAogbmFtZXNwYWNl
IEIzRHVwbGljYXRlVGFpbHNJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0g
ZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiBjbGFz
cyBEdXBsaWNhdGVUYWlscyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNFbGlt
aW5hdGVDb21tb25TdWJleHByZXNzaW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzRWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMuY3BwCShyZXZpc2lv
biAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNFbGltaW5hdGVDb21tb25T
dWJleHByZXNzaW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NCw3ICs1NCw3IEBAIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogbmFtZXNwYWNlIHsKIAogbmFtZXNwYWNlIEIzRWxp
bWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnNJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwog
fQogCiAvLyBGSVhNRTogV2UgY291bGQgdHJlYXQgUGF0Y2hwb2ludHMgd2l0aCBhIG5vbi1lbXB0
eSBzZXQgb2YgcmVhZHMgYXMgYSAibWVtb3J5IHZhbHVlIiBhbmQgc29tZWhvdwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDks
NyArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIG5hbWVzcGFjZSB7CiAK
IG5hbWVzcGFjZSBCM0ZpeFNTQUludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2Ug
PSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIHZv
aWQga2lsbERlYWRWYXJpYWJsZXMoUHJvY2VkdXJlJiBwcm9jKQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzRm9sZFBhdGhDb25zdGFudHMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAkocmV2aXNpb24gMjQ5
OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRm9sZFBhdGhDb25zdGFudHMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBC
MyB7CiBuYW1lc3BhY2UgewogCiBuYW1lc3BhY2UgQjNGb2xkUGF0aENvbnN0YW50c0ludGVybmFs
IHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIg
Ym9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIGNsYXNzIEZvbGRQYXRoQ29uc3RhbnRzIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuY3BwCShyZXZp
c2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgQjMgewogbmFtZXNwYWNlIHsKIAogbmFtZXNwYWNlIEIzSW5mZXJTd2l0Y2hlc0ludGVybmFs
IHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIg
Ym9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIGNsYXNzIEluZmVyU3dpdGNoZXMgewpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzS2luZC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0tpbmQuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzS2luZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIxMSw3ICsyMTEsNyBAQCBp
bmxpbmUgS2luZCB0cmFwcGluZyhLaW5kIGtpbmQpCiBzdHJ1Y3QgS2luZEhhc2ggewogICAgIHN0
YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEtpbmQmIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsg
fQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IEtpbmQmIGEsIGNvbnN0IEtpbmQmIGIpIHsg
cmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0Vt
cHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29t
cGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkIzCkBAIC0yMjUsNyArMjI1LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlND
OjpCMzo6SwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBs
YXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpCMzo6S2luZD4gOiBwdWJsaWMgU2ltcGxlQ2xh
c3NIYXNoVHJhaXRzPEpTQzo6QjM6OktpbmQ+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0
eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFs
dWVJc1plcm8gPSBmYWxzZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogbmFtZXNw
YWNlIHsKIAogbmFtZXNwYWNlIEIzTG93ZXJUb0FpckludGVybmFsIHsKLXN0YXRpYyBjb25zdCBi
b29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CiB9CiAKIHVzaW5nIEFyZyA9IEFpcjo6QXJnOwpAQCAtNTMxLDcgKzUzMSw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICByZXR1cm4gQXJnOjphZGRyKHRtcChhZGRyZXNzKSwgb2Zmc2V0KTsK
ICAgICAgICAgfTsKICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBsb3Rz
T2ZVc2VzID0gMTA7IC8vIFRoaXMgaXMgYXJiaXRyYXJ5IGFuZCB3ZSBzaG91bGQgdHVuZSBpdCBl
dmVudHVhbGx5LgorICAgICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGxvdHNPZlVzZXMg
PSAxMDsgLy8gVGhpcyBpcyBhcmJpdHJhcnkgYW5kIHdlIHNob3VsZCB0dW5lIGl0IGV2ZW50dWFs
bHkuCiAKICAgICAgICAgLy8gT25seSBtYXRjaCBpZiB0aGUgYWRkcmVzcyB2YWx1ZSBpc24ndCB1
c2VkIGluIHNvbWUgbGFyZ2UgbnVtYmVyIG9mIHBsYWNlcy4KICAgICAgICAgaWYgKG1fdXNlQ291
bnRzLm51bVVzZXMoYWRkcmVzcykgPiBsb3RzT2ZVc2VzKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzTmF0aXZlVHJhaXRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzTmF0aXZlVHJhaXRzLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM05hdGl2ZVRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcxICsz
Nyw3MSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IE5hdGl2ZVRyYWl0czsKIAogdGVtcGxh
dGU8PiBzdHJ1Y3QgTmF0aXZlVHJhaXRzPGludDhfdD4gewogICAgIHR5cGVkZWYgaW50MzJfdCBD
YW5vbmljYWxUeXBlOwotICAgIHN0YXRpYyBjb25zdCBCYW5rIGJhbmsgPSBHUDsKLSAgICBzdGF0
aWMgY29uc3QgV2lkdGggd2lkdGggPSBXaWR0aDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBCYW5r
IGJhbmsgPSBHUDsKKyAgICBzdGF0aWMgY29uc3RleHByIFdpZHRoIHdpZHRoID0gV2lkdGg4Owog
ICAgIHN0YXRpYyBjb25zdGV4cHIgVHlwZSB0eXBlID0gSW50MzI7CiB9OwogCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBOYXRpdmVUcmFpdHM8dWludDhfdD4gewogICAgIHR5cGVkZWYgaW50MzJfdCBDYW5v
bmljYWxUeXBlOwotICAgIHN0YXRpYyBjb25zdCBCYW5rIGJhbmsgPSBHUDsKLSAgICBzdGF0aWMg
Y29uc3QgV2lkdGggd2lkdGggPSBXaWR0aDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBCYW5rIGJh
bmsgPSBHUDsKKyAgICBzdGF0aWMgY29uc3RleHByIFdpZHRoIHdpZHRoID0gV2lkdGg4OwogICAg
IHN0YXRpYyBjb25zdGV4cHIgVHlwZSB0eXBlID0gSW50MzI7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBOYXRpdmVUcmFpdHM8aW50MTZfdD4gewogICAgIHR5cGVkZWYgaW50MzJfdCBDYW5vbmlj
YWxUeXBlOwotICAgIHN0YXRpYyBjb25zdCBCYW5rIGJhbmsgPSBHUDsKLSAgICBzdGF0aWMgY29u
c3QgV2lkdGggd2lkdGggPSBXaWR0aDE2OworICAgIHN0YXRpYyBjb25zdGV4cHIgQmFuayBiYW5r
ID0gR1A7CisgICAgc3RhdGljIGNvbnN0ZXhwciBXaWR0aCB3aWR0aCA9IFdpZHRoMTY7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBUeXBlIHR5cGUgPSBJbnQzMjsKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IE5hdGl2ZVRyYWl0czx1aW50MTZfdD4gewogICAgIHR5cGVkZWYgaW50MzJfdCBDYW5vbmlj
YWxUeXBlOwotICAgIHN0YXRpYyBjb25zdCBCYW5rIGJhbmsgPSBHUDsKLSAgICBzdGF0aWMgY29u
c3QgV2lkdGggd2lkdGggPSBXaWR0aDE2OworICAgIHN0YXRpYyBjb25zdGV4cHIgQmFuayBiYW5r
ID0gR1A7CisgICAgc3RhdGljIGNvbnN0ZXhwciBXaWR0aCB3aWR0aCA9IFdpZHRoMTY7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBUeXBlIHR5cGUgPSBJbnQzMjsKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IE5hdGl2ZVRyYWl0czxpbnQzMl90PiB7CiAgICAgdHlwZWRlZiBpbnQzMl90IENhbm9uaWNh
bFR5cGU7Ci0gICAgc3RhdGljIGNvbnN0IEJhbmsgYmFuayA9IEdQOwotICAgIHN0YXRpYyBjb25z
dCBXaWR0aCB3aWR0aCA9IFdpZHRoMzI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBCYW5rIGJhbmsg
PSBHUDsKKyAgICBzdGF0aWMgY29uc3RleHByIFdpZHRoIHdpZHRoID0gV2lkdGgzMjsKICAgICBz
dGF0aWMgY29uc3RleHByIFR5cGUgdHlwZSA9IEludDMyOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1
Y3QgTmF0aXZlVHJhaXRzPHVpbnQzMl90PiB7CiAgICAgdHlwZWRlZiBpbnQzMl90IENhbm9uaWNh
bFR5cGU7Ci0gICAgc3RhdGljIGNvbnN0IEJhbmsgYmFuayA9IEdQOwotICAgIHN0YXRpYyBjb25z
dCBXaWR0aCB3aWR0aCA9IFdpZHRoMzI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBCYW5rIGJhbmsg
PSBHUDsKKyAgICBzdGF0aWMgY29uc3RleHByIFdpZHRoIHdpZHRoID0gV2lkdGgzMjsKICAgICBz
dGF0aWMgY29uc3RleHByIFR5cGUgdHlwZSA9IEludDMyOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1
Y3QgTmF0aXZlVHJhaXRzPGludDY0X3Q+IHsKICAgICB0eXBlZGVmIGludDY0X3QgQ2Fub25pY2Fs
VHlwZTsKLSAgICBzdGF0aWMgY29uc3QgQmFuayBiYW5rID0gR1A7Ci0gICAgc3RhdGljIGNvbnN0
IFdpZHRoIHdpZHRoID0gV2lkdGg2NDsKKyAgICBzdGF0aWMgY29uc3RleHByIEJhbmsgYmFuayA9
IEdQOworICAgIHN0YXRpYyBjb25zdGV4cHIgV2lkdGggd2lkdGggPSBXaWR0aDY0OwogICAgIHN0
YXRpYyBjb25zdGV4cHIgVHlwZSB0eXBlID0gSW50NjQ7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBOYXRpdmVUcmFpdHM8dWludDY0X3Q+IHsKICAgICB0eXBlZGVmIGludDY0X3QgQ2Fub25pY2Fs
VHlwZTsKLSAgICBzdGF0aWMgY29uc3QgQmFuayBiYW5rID0gR1A7Ci0gICAgc3RhdGljIGNvbnN0
IFdpZHRoIHdpZHRoID0gV2lkdGg2NDsKKyAgICBzdGF0aWMgY29uc3RleHByIEJhbmsgYmFuayA9
IEdQOworICAgIHN0YXRpYyBjb25zdGV4cHIgV2lkdGggd2lkdGggPSBXaWR0aDY0OwogICAgIHN0
YXRpYyBjb25zdGV4cHIgVHlwZSB0eXBlID0gSW50NjQ7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBOYXRpdmVUcmFpdHM8ZmxvYXQ+IHsKICAgICB0eXBlZGVmIGZsb2F0IENhbm9uaWNhbFR5cGU7
Ci0gICAgc3RhdGljIGNvbnN0IEJhbmsgYmFuayA9IEZQOwotICAgIHN0YXRpYyBjb25zdCBXaWR0
aCB3aWR0aCA9IFdpZHRoMzI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBCYW5rIGJhbmsgPSBGUDsK
KyAgICBzdGF0aWMgY29uc3RleHByIFdpZHRoIHdpZHRoID0gV2lkdGgzMjsKICAgICBzdGF0aWMg
Y29uc3RleHByIFR5cGUgdHlwZSA9IEZsb2F0OwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgTmF0
aXZlVHJhaXRzPGRvdWJsZT4gewogICAgIHR5cGVkZWYgZG91YmxlIENhbm9uaWNhbFR5cGU7Ci0g
ICAgc3RhdGljIGNvbnN0IEJhbmsgYmFuayA9IEZQOwotICAgIHN0YXRpYyBjb25zdCBXaWR0aCB3
aWR0aCA9IFdpZHRoNjQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBCYW5rIGJhbmsgPSBGUDsKKyAg
ICBzdGF0aWMgY29uc3RleHByIFdpZHRoIHdpZHRoID0gV2lkdGg2NDsKICAgICBzdGF0aWMgY29u
c3RleHByIFR5cGUgdHlwZSA9IERvdWJsZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwCShyZXZpc2lvbiAyNDk5
NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VEb3VibGVUb0Zsb2F0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBCMyB7CiBuYW1lc3BhY2UgewogCiBuYW1lc3BhY2UgQjNSZWR1Y2VEb3VibGVUb0Zsb2F0
SW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNv
bnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIGJvb2wgcHJpbnRSZW1haW5pbmdDb252
ZXJzaW9ucyA9IGZhbHNlOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1
Y2VMb29wU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1JlZHVjZUxvb3BTdHJlbmd0aC5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZUxvb3BTdHJlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIGZhc3RGb3J3YXJkQ29weTMyKHVpbnQzMl90KiBkc3Qs
IGNvCiAjZW5kaWYKIAogY2xhc3MgUmVkdWNlTG9vcFN0cmVuZ3RoIHsKLSAgICBzdGF0aWMgY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJv
c2UgPSBmYWxzZTsKIAogICAgIHN0cnVjdCBBZGRySW5mbyB7CiAgICAgICAgIFZhbHVlKiBhcHBl
bmRBZGRyKFByb2NlZHVyZSYgcHJvYywgQmFzaWNCbG9jayogYmxvY2ssIFZhbHVlKiBhZGRyKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAko
cmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3Ry
ZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTAsNyArOTAsNyBAQCBuYW1lc3BhY2Ugewog
Ly8gY2Fub25pY2FsIGlmIHgtPmluZGV4KCkgPD0geS0+aW5kZXgoKS4KIAogbmFtZXNwYWNlIEIz
UmVkdWNlU3RyZW5ndGhJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiAvLyBGSVhN
RTogVGhpcyBJbnRSYW5nZSBzdHVmZiBzaG91bGQgYmUgcmVmYWN0b3JlZCBpbnRvIGEgZ2VuZXJh
bCBjb25zdGFudCBwcm9wYWdhdG9yLiBJdCdzIHdlaXJkCkBAIC0yMTAyLDcgKzIxMDIsNyBAQCBw
cml2YXRlOgogICAgICAgICAgICAgLy8gYmxvY2tzLiBUaGlzIGlzIHByZXR0eSBtdWNoIGd1YXJh
bnRlZWQgc2luY2Ugb25lIG9mIHRob3NlIGJsb2NrcyB3aWxsIHJlcGxhY2UgYWxsCiAgICAgICAg
ICAgICAvLyB1c2VzIG9mIHRoZSBTZWxlY3Qgd2l0aCBhIGNvbnN0YW50LCBhbmQgdGhhdCBjb25z
dGFudCB3aWxsIGJlIHRyYW5zaXRpdmVseSB1c2VkCiAgICAgICAgICAgICAvLyBmcm9tIHRoZSBj
aGVjay4KLSAgICAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzZWxlY3RTcGVjaWFsaXph
dGlvbkJvdW5kID0gMzsKKyAgICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc2Vs
ZWN0U3BlY2lhbGl6YXRpb25Cb3VuZCA9IDM7CiAgICAgICAgICAgICBWYWx1ZSogc2VsZWN0ID0g
ZmluZFJlY2VudE5vZGVNYXRjaGluZygKICAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgw
KSwgc2VsZWN0U3BlY2lhbGl6YXRpb25Cb3VuZCwKICAgICAgICAgICAgICAgICBbJl0gKFZhbHVl
KiB2YWx1ZSkgLT4gYm9vbCB7CkBAIC0yMjg2LDcgKzIyODYsNyBAQCBwcml2YXRlOgogICAgICAg
ICBSRUxFQVNFX0FTU0VSVChzdGFydEluZGV4ICE9IFVJTlRfTUFYKTsKIAogICAgICAgICAvLyBC
eSBCYXNpY0Jsb2NrIGNvbnZlbnRpb24sIGNhc2VJbmRleCA9PSAwID0+IHRoZW4sIGNhc2VJbmRl
eCA9PSAxID0+IGVsc2UuCi0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1DYXNlcyA9
IDI7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtQ2FzZXMgPSAyOwogICAg
ICAgICBCYXNpY0Jsb2NrKiBjYXNlc1tudW1DYXNlc107CiAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBudW1DYXNlczsgKytpKQogICAgICAgICAgICAgY2FzZXNbaV0gPSBtX2Jsb2Nr
SW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShtX2Jsb2NrKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbHVlS2V5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzVmFsdWVLZXkuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsdWVLZXkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE3OCw3ICsxNzgsNyBA
QCBwcml2YXRlOgogc3RydWN0IFZhbHVlS2V5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhh
c2goY29uc3QgVmFsdWVLZXkmIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRp
YyBib29sIGVxdWFsKGNvbnN0IFZhbHVlS2V5JiBhLCBjb25zdCBWYWx1ZUtleSYgYikgeyByZXR1
cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlP
ckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJl
VG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMK
QEAgLTE5Miw3ICsxOTIsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxKU0M6OkIz
OjpWCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwogdGVtcGxhdGU8
PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkIzOjpWYWx1ZUtleT4gOiBwdWJsaWMgU2ltcGxlQ2xh
c3NIYXNoVHJhaXRzPEpTQzo6QjM6OlZhbHVlS2V5PiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wg
ZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0
eVZhbHVlSXNaZXJvID0gZmFsc2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfNi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM182LmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM182LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY2
MiwxMSArMTY2MiwxMSBAQCB2b2lkIHRlc3RJbnRlcnByZXRlcigpCiAgICAgZGlzcGF0Y2gtPmFw
cGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soc3RvcCkpOwogCiAgICAgLy8gT3VyICJvcGNv
ZGVzIi4KLSAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgQWRkRFAgPSAwOwotICAgIHN0YXRpYyBj
b25zdCBpbnRwdHJfdCBBZGRDUCA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IGludHB0cl90IEFkZCA9
IDI7Ci0gICAgc3RhdGljIGNvbnN0IGludHB0cl90IFByaW50ID0gMzsKLSAgICBzdGF0aWMgY29u
c3QgaW50cHRyX3QgU3RvcCA9IDQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnRwdHJfdCBBZGRE
UCA9IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnRwdHJfdCBBZGRDUCA9IDE7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBpbnRwdHJfdCBBZGQgPSAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50
cHRyX3QgUHJpbnQgPSAzOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50cHRyX3QgU3RvcCA9IDQ7
CiAKICAgICBwb2x5SnVtcC0+c2V0R2VuZXJhdG9yKAogICAgICAgICBbJl0gKENDYWxsSGVscGVy
cyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgewpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVyc0J5R3JhcGhD
b2xvcmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJBbGxvY2F0ZVJlZ2lzdGVyc0J5R3JhcGhDb2xvcmluZy5jcHAJKHJldmlzaW9uIDI0OTk1OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNCeUdy
YXBoQ29sb3JpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTE2LDcgKzUxNiw3IEBAIHByb3Rl
Y3RlZDoKICAgICBzdHJ1Y3QgSW50ZXJmZXJlbmNlRWRnZUhhc2ggewogICAgICAgICBzdGF0aWMg
dW5zaWduZWQgaGFzaChjb25zdCBJbnRlcmZlcmVuY2VFZGdlJiBrZXkpIHsgcmV0dXJuIGtleS5o
YXNoKCk7IH0KICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgSW50ZXJmZXJlbmNlRWRn
ZSYgYSwgY29uc3QgSW50ZXJmZXJlbmNlRWRnZSYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1
ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JE
ZWxldGVkID0gdHJ1ZTsKICAgICB9OwogICAgIHR5cGVkZWYgU2ltcGxlQ2xhc3NIYXNoVHJhaXRz
PEludGVyZmVyZW5jZUVkZ2U+IEludGVyZmVyZW5jZUVkZ2VIYXNoVHJhaXRzOwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2tCeUdyYXBoQ29sb3Jp
bmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxs
b2NhdGVTdGFja0J5R3JhcGhDb2xvcmluZy5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVTdGFja0J5R3JhcGhDb2xvcmluZy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgeyBuYW1lc3BhY2UKIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBBaXJBbGxvY2F0
ZVN0YWNrQnlHcmFwaENvbG9yaW5nSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAog
c3RydWN0IENvYWxlc2NhYmxlTW92ZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckFyZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyQXJnLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQXJnLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNDY3LDcgKzE0NjcsNyBAQCBwcml2YXRl
Ogogc3RydWN0IEFyZ0hhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEFyZyYg
a2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3Qg
QXJnJiBhLCBjb25zdCBBcmcmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25z
dCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsK
IAogfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgpAQCAtMTQ4OSw3ICsxNDg5LDcgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpCMzo6QQogdGVtcGxhdGU8dHlwZW5h
bWUgVD4gc3RydWN0IEhhc2hUcmFpdHM7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPEpT
Qzo6QjM6OkFpcjo6QXJnPiA6IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxKU0M6OkIzOjpBaXI6OkFy
Zz4gewogICAgIC8vIEJlY2F1c2UgbV9zY2FsZSBpcyAxIGluIHRoZSBlbXB0eSB2YWx1ZS4KLSAg
ICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdURgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNw
ZWNpYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckND
YWxsU3BlY2lhbC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckNDYWxsU3BlY2lhbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDksNyArNDksNyBA
QCBwdWJsaWM6CiAgICAgLy8gWW91IGNhbm5vdCB1c2UgdGhpcyByZWdpc3RlciB0byBwYXNzIGFy
Z3VtZW50cy4gSXQganVzdCBzbyBoYXBwZW5zIHRoYXQgdGhpcyByZWdpc3RlciBpcyBub3QKICAg
ICAvLyB1c2VkIGZvciBhcmd1bWVudHMgaW4gdGhlIEMgY2FsbGluZyBjb252ZW50aW9uLiBCeSB0
aGUgd2F5LCB0aGlzIGlzIHRoZSBvbmx5IHRoaW5nIHRoYXQgY2F1c2VzCiAgICAgLy8gdGhpcyBz
cGVjaWFsIHRvIGJlIHNwZWNpZmljIHRvIEMgY2FsbHMuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyBzY3JhdGNoUmVnaXN0ZXIgPSBHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25Bcmd1bWVudEdQUjA7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgc2NyYXRjaFJlZ2lzdGVyID0gR1BSSW5mbzo6
bm9uUHJlc2VydmVkTm9uQXJndW1lbnRHUFIwOwogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmb3JF
YWNoQXJnKEluc3QmLCBjb25zdCBTY29wZWRMYW1iZGE8SW5zdDo6RWFjaEFyZ0NhbGxiYWNrPiYp
IGZpbmFsOwpAQCAtNjUsMTUgKzY1LDE1IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGRlZXBEdW1w
SW1wbChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBzcGVjaWFsQXJnT2Zmc2V0ID0gMDsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgbnVtU3BlY2lhbEFyZ3MgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjYWxs
ZWVBcmdPZmZzZXQgPSBudW1TcGVjaWFsQXJnczsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
bnVtQ2FsbGVlQXJncyA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHJldHVybkdQQXJn
T2Zmc2V0ID0gbnVtU3BlY2lhbEFyZ3MgKyBudW1DYWxsZWVBcmdzOwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBudW1SZXR1cm5HUEFyZ3MgPSAyOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCByZXR1cm5GUEFyZ09mZnNldCA9IG51bVNwZWNpYWxBcmdzICsgbnVtQ2FsbGVlQXJncyArIG51
bVJldHVybkdQQXJnczsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtUmV0dXJuRlBBcmdz
ID0gMTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgYXJnQXJnT2Zmc2V0ID0KKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIHNwZWNpYWxBcmdPZmZzZXQgPSAwOworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgbnVtU3BlY2lhbEFyZ3MgPSAxOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgY2FsbGVlQXJnT2Zmc2V0ID0gbnVtU3BlY2lhbEFyZ3M7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBudW1DYWxsZWVBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIHJldHVybkdQQXJnT2Zmc2V0ID0gbnVtU3BlY2lhbEFyZ3MgKyBudW1DYWxs
ZWVBcmdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtUmV0dXJuR1BBcmdzID0g
MjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHJldHVybkZQQXJnT2Zmc2V0ID0gbnVt
U3BlY2lhbEFyZ3MgKyBudW1DYWxsZWVBcmdzICsgbnVtUmV0dXJuR1BBcmdzOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgbnVtUmV0dXJuRlBBcmdzID0gMTsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIGFyZ0FyZ09mZnNldCA9CiAgICAgICAgIG51bVNwZWNpYWxBcmdzICsg
bnVtQ2FsbGVlQXJncyArIG51bVJldHVybkdQQXJncyArIG51bVJldHVybkZQQXJnczsKICAgICAK
ICAgICBSZWdpc3RlclNldCBtX2Nsb2JiZXJlZFJlZ3M7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckVtaXRTaHVmZmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckVtaXRTaHVmZmxlLmNwcAkocmV2aXNpb24gMjQ5OTU5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJFbWl0U2h1ZmZsZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMg
eyBuYW1lc3BhY2UKIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBBaXJFbWl0U2h1ZmZsZUludGVy
bmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4
cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckZpeE9idmlvdXNTcGlsbHMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRml4T2J2
aW91c1NwaWxscy5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyRml4T2J2aW91c1NwaWxscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MCw3
ICs0MCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UKIG5hbWVz
cGFjZSB7CiAKIG5hbWVzcGFjZSBBaXJGaXhPYnZpb3VzU3BpbGxzSW50ZXJuYWwgewotc3RhdGlj
IGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJv
c2UgPSBmYWxzZTsKIH0KIAogY2xhc3MgRml4T2J2aW91c1NwaWxscyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckZvcm1UYWJsZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRm9ybVRhYmxlLmgJKHJldmlzaW9uIDI0OTk1OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRm9ybVRhYmxlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzEsMTMgKzMxLDEzIEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBu
YW1lc3BhY2UgQWlyIHsKIAotc3RhdGljIGNvbnN0IHVpbnQ4X3QgZm9ybVJvbGVTaGlmdCA9IDA7
Ci1zdGF0aWMgY29uc3QgdWludDhfdCBmb3JtUm9sZU1hc2sgPSAxNTsKLXN0YXRpYyBjb25zdCB1
aW50OF90IGZvcm1CYW5rU2hpZnQgPSA0Owotc3RhdGljIGNvbnN0IHVpbnQ4X3QgZm9ybUJhbmtN
YXNrID0gMTsKLXN0YXRpYyBjb25zdCB1aW50OF90IGZvcm1XaWR0aFNoaWZ0ID0gNTsKLXN0YXRp
YyBjb25zdCB1aW50OF90IGZvcm1XaWR0aE1hc2sgPSAzOwotc3RhdGljIGNvbnN0IHVpbnQ4X3Qg
Zm9ybUludmFsaWRTaGlmdCA9IDc7CitzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgZm9ybVJvbGVT
aGlmdCA9IDA7CitzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgZm9ybVJvbGVNYXNrID0gMTU7Citz
dGF0aWMgY29uc3RleHByIHVpbnQ4X3QgZm9ybUJhbmtTaGlmdCA9IDQ7CitzdGF0aWMgY29uc3Rl
eHByIHVpbnQ4X3QgZm9ybUJhbmtNYXNrID0gMTsKK3N0YXRpYyBjb25zdGV4cHIgdWludDhfdCBm
b3JtV2lkdGhTaGlmdCA9IDU7CitzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgZm9ybVdpZHRoTWFz
ayA9IDM7CitzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgZm9ybUludmFsaWRTaGlmdCA9IDc7CiAK
ICNkZWZpbmUgRU5DT0RFX0lOU1RfRk9STShyb2xlLCBiYW5rLCB3aWR0aCkgKHN0YXRpY19jYXN0
PHVpbnQ4X3Q+KHJvbGUpIDw8IGZvcm1Sb2xlU2hpZnQgfCBzdGF0aWNfY2FzdDx1aW50OF90Pihi
YW5rKSA8PCBmb3JtQmFua1NoaWZ0IHwgc3RhdGljX2Nhc3Q8dWludDhfdD4od2lkdGgpIDw8IGZv
cm1XaWR0aFNoaWZ0KQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxv
d2VyQWZ0ZXJSZWdBbGxvYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJMb3dlckFmdGVyUmVnQWxsb2MuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyQWZ0ZXJSZWdBbGxvYy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
QjMgeyBuYW1lc3BhY2UKIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBBaXJMb3dlckFmdGVyUmVn
QWxsb2NJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0
aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogICAgIAogfSAvLyBhbm9ueW1v
dXMgbmFtZXNwYWNlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50
U3BlY2lhbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
UHJpbnRTcGVjaWFsLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTcsNyArOTcsNyBAQCBw
dWJsaWM6CiAgICAgLy8gWW91IGNhbm5vdCB1c2UgdGhpcyByZWdpc3RlciB0byBwYXNzIGFyZ3Vt
ZW50cy4gSXQganVzdCBzbyBoYXBwZW5zIHRoYXQgdGhpcyByZWdpc3RlciBpcyBub3QKICAgICAv
LyB1c2VkIGZvciBhcmd1bWVudHMgaW4gdGhlIEMgY2FsbGluZyBjb252ZW50aW9uLiBCeSB0aGUg
d2F5LCB0aGlzIGlzIHRoZSBvbmx5IHRoaW5nIHRoYXQgY2F1c2VzCiAgICAgLy8gdGhpcyBzcGVj
aWFsIHRvIGJlIHNwZWNpZmljIHRvIEMgY2FsbHMuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBz
Y3JhdGNoUmVnaXN0ZXIgPSBHUFJJbmZvOjpub25BcmdHUFIwOworICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIHNjcmF0Y2hSZWdpc3RlciA9IEdQUkluZm86Om5vbkFyZ0dQUjA7CiAgICAgCiBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCBmb3JFYWNoQXJnKEluc3QmLCBjb25zdCBTY29wZWRMYW1iZGE8
SW5zdDo6RWFjaEFyZ0NhbGxiYWNrPiYpIGZpbmFsOwpAQCAtMTEzLDE0ICsxMTMsMTQgQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgZGVlcER1bXBJbXBsKFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7
CiAgICAgCiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzcGVjaWFsQXJnT2Zm
c2V0ID0gMDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtU3BlY2lhbEFyZ3MgPSAxOwot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjYWxsZWVBcmdPZmZzZXQgPSBudW1TcGVjaWFsQXJn
czsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtQ2FsbGVlQXJncyA9IDE7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIHJldHVybkdQQXJnT2Zmc2V0ID0gbnVtU3BlY2lhbEFyZ3MgKyBu
dW1DYWxsZWVBcmdzOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1SZXR1cm5HUEFyZ3Mg
PSAyOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCByZXR1cm5GUEFyZ09mZnNldCA9IG51bVNw
ZWNpYWxBcmdzICsgbnVtQ2FsbGVlQXJncyArIG51bVJldHVybkdQQXJnczsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgbnVtUmV0dXJuRlBBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIHNwZWNpYWxBcmdPZmZzZXQgPSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgbnVtU3BlY2lhbEFyZ3MgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
Y2FsbGVlQXJnT2Zmc2V0ID0gbnVtU3BlY2lhbEFyZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBudW1DYWxsZWVBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IHJldHVybkdQQXJnT2Zmc2V0ID0gbnVtU3BlY2lhbEFyZ3MgKyBudW1DYWxsZWVBcmdzOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtUmV0dXJuR1BBcmdzID0gMjsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIHJldHVybkZQQXJnT2Zmc2V0ID0gbnVtU3BlY2lhbEFyZ3Mg
KyBudW1DYWxsZWVBcmdzICsgbnVtUmV0dXJuR1BBcmdzOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgbnVtUmV0dXJuRlBBcmdzID0gMTsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIGFyZ0FyZ09mZnNldCA9CiAgICAgbnVtU3BlY2lhbEFyZ3MgKyBudW1DYWxsZWVBcmdzICsg
bnVtUmV0dXJuR1BBcmdzICsgbnVtUmV0dXJuRlBBcmdzOwogICAgIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTdGFja0FsbG9jYXRpb24uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3RhY2tBbGxvY2F0aW9uLmNwcAkocmV2
aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTdGFja0Fs
bG9jYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZQogbmFtZXNwYWNlIHsKIAogbmFtZXNwYWNlIEFpclN0
YWNrQWxsb2NhdGlvbkludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIENvbGxlY3Rpb24+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpclRtcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
VG1wLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyVG1wLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMjIsNyArMzIyLDcgQEAgcHJpdmF0ZToKIHN0
cnVjdCBUbXBIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBUbXAmIGtleSkg
eyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFRtcCYg
YSwgY29uc3QgVG1wJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9v
bCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIH0g
fSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTEsNyArNTEsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIG5hbWVzcGFjZSBBY2Nlc3NDYXNl
SW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNv
bnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogQWNjZXNzQ2FzZTo6QWNjZXNzQ2Fz
ZShWTSYgdm0sIEpTQ2VsbCogb3duZXIsIEFjY2Vzc1R5cGUgdHlwZSwgUHJvcGVydHlPZmZzZXQg
b2Zmc2V0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRp
b25TZXQmIGNvbmRpdGlvblNldCwgc3RkOjp1bmlxdWVfcHRyPFBvbHlQcm90b0FjY2Vzc0NoYWlu
PiBwcm90b3R5cGVBY2Nlc3NDaGFpbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9DYWxsTGlua1N0YXR1cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDAsNyArNDAsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIG5hbWVzcGFjZSBDYWxs
TGlua1N0YXR1c0ludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsK
K3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIENhbGxMaW5rU3Rh
dHVzOjpDYWxsTGlua1N0YXR1cyhKU1ZhbHVlIHZhbHVlKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NhbGxWYXJpYW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxWYXJpYW50LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsVmFyaWFudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTUsNyArMTk1LDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBDYWxsVmFyaWFudEhhc2ggewog
ICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IENhbGxWYXJpYW50JiBrZXkpIHsgcmV0dXJu
IGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBDYWxsVmFyaWFudCYg
YSwgY29uc3QgQ2FsbFZhcmlhbnQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBj
b25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwog
fTsKIAogdHlwZWRlZiBWZWN0b3I8Q2FsbFZhcmlhbnQsIDE+IENhbGxWYXJpYW50TGlzdDsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9u
IDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAko
d29ya2luZyBjb3B5KQpAQCAtMTExLDggKzExMSw4IEBAIHB1YmxpYzoKIAogICAgIGVudW0gQ29w
eVBhcnNlZEJsb2NrVGFnIHsgQ29weVBhcnNlZEJsb2NrIH07CiAKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVy
ZUlzSW1tb3J0YWw7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRy
dWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSwgU3Vic3BhY2VBY2Nlc3M+CiAgICAgc3RhdGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihW
TSYpIHsgcmV0dXJuIG51bGxwdHI7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlT3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVPcmlnaW4uaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4MiwxMyAr
MjgyLDEzIEBAIGlubGluZSBib29sIENvZGVPcmlnaW46Om9wZXJhdG9yPT0oY29uc3QKIHN0cnVj
dCBDb2RlT3JpZ2luSGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgQ29kZU9y
aWdpbiYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwo
Y29uc3QgQ29kZU9yaWdpbiYgYSwgY29uc3QgQ29kZU9yaWdpbiYgYikgeyByZXR1cm4gYSA9PSBi
OyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQg
PSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9y
RGVsZXRlZCA9IHRydWU7CiB9OwogCiBzdHJ1Y3QgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaCB7
CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgQ29kZU9yaWdpbiYga2V5KSB7IHJldHVy
biBrZXkuYXBwcm94aW1hdGVIYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBD
b2RlT3JpZ2luJiBhLCBjb25zdCBDb2RlT3JpZ2luJiBiKSB7IHJldHVybiBhLmlzQXBwcm94aW1h
dGVseUVxdWFsVG8oYik7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0Nv
bXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpA
QCAtMzAyLDcgKzMwMiw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPEpTQzo6Q29k
ZU8KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEhhc2hUcmFpdHM7CiB0ZW1wbGF0ZTw+
IHN0cnVjdCBIYXNoVHJhaXRzPEpTQzo6Q29kZU9yaWdpbj4gOiBTaW1wbGVDbGFzc0hhc2hUcmFp
dHM8SlNDOjpDb2RlT3JpZ2luPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlz
WmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJv
ID0gZmFsc2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oCShyZXZpc2lvbiAyNDk5NTkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTE0Niw3ICsxNDYsNyBAQCBwcml2YXRlOgogc3RydWN0IEZyZXF1ZW50
RXhpdFNpdGVIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBGcmVxdWVudEV4
aXRTaXRlJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVh
bChjb25zdCBGcmVxdWVudEV4aXRTaXRlJiBhLCBjb25zdCBGcmVxdWVudEV4aXRTaXRlJiBiKSB7
IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0Nv
bXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlND
OjpERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EaXJlY3RFdmFsQ29k
ZUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Rp
cmVjdEV2YWxDb2RlQ2FjaGUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0RpcmVjdEV2YWxDb2RlQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC03NCw3ICs3NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGxocyA9PSByaHM7CiAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxl
dGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVU
b0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CiAgICAgICAgICAgICB9OwogCiAgICAg
ICAgICAgICB0eXBlZGVmIFNpbXBsZUNsYXNzSGFzaFRyYWl0czxDYWNoZUtleT4gSGFzaFRyYWl0
czsKQEAgLTEwMiw3ICsxMDIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBjbGVh
cigpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBtYXhDYWNoZUVu
dHJpZXMgPSA2NDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgbWF4Q2FjaGVFbnRyaWVz
ID0gNjQ7CiAKICAgICAgICAgdm9pZCBzZXRTbG93KEV4ZWNTdGF0ZSosIEpTQ2VsbCogb3duZXIs
IGNvbnN0IFN0cmluZyYgZXZhbFNvdXJjZSwgQ2FsbFNpdGVJbmRleCwgRGlyZWN0RXZhbEV4ZWN1
dGFibGUqKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGFi
bGVUb0NvZGVCbG9ja0VkZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRnZS5oCShyZXZpc2lvbiAyNDk5NTkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRn
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFj
dG9yOwogY2xhc3MgRXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRnZSBmaW5hbCA6IHB1YmxpYyBKU0Nl
bGwgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1
cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+CiAgICAgc3RhdGljIElz
b1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldHRlclNldHRlckFjY2Vzc0Nhc2UuY3BwCShy
ZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0dGVy
U2V0dGVyQWNjZXNzQ2FzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw3ICszOSw3IEBACiBu
YW1lc3BhY2UgSlNDIHsKIAogbmFtZXNwYWNlIEdldHRlclNldHRlckFjY2Vzc0Nhc2VJbnRlcm5h
bCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHBy
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiBHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlOjpHZXR0
ZXJTZXR0ZXJBY2Nlc3NDYXNlKFZNJiB2bSwgSlNDZWxsKiBvd25lciwgQWNjZXNzVHlwZSBhY2Nl
c3NUeXBlLCBQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25z
dCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCYgY29uZGl0aW9uU2V0LCBib29sIHZpYVByb3h5
LCBXYXRjaHBvaW50U2V0KiBhZGRpdGlvbmFsU2V0LCBKU09iamVjdCogY3VzdG9tU2xvdEJhc2Us
IHN0ZDo6dW5pcXVlX3B0cjxQb2x5UHJvdG9BY2Nlc3NDaGFpbj4gcHJvdG90eXBlQWNjZXNzQ2hh
aW4pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1
ZVByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
TGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xhenlPcGVyYW5kVmFsdWVQcm9maWxlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtOTksNyArOTksNyBAQCBzdHJ1Y3QgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVL
ZXlIYXNoIHsKICAgICBzdGF0aWMgYm9vbCBlcXVhbCgKICAgICAgICAgY29uc3QgTGF6eU9wZXJh
bmRWYWx1ZVByb2ZpbGVLZXkmIGEsCiAgICAgICAgIGNvbnN0IExhenlPcGVyYW5kVmFsdWVQcm9m
aWxlS2V5JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZl
VG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFBy
b3BlcnR5Q29uZGl0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjY3LDcgKzI2Nyw3IEBAIHN0cnVjdCBPYmplY3RQcm9wZXJ0eUNv
bmRpdGlvbkhhc2ggewogICAgIHsKICAgICAgICAgcmV0dXJuIGEgPT0gYjsKICAgICB9Ci0gICAg
c3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9
IHRydWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9u
U2V0LmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4
Myw3ICsxODMsNyBAQCBib29sIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0Ojppc1ZhbGlkCiBu
YW1lc3BhY2UgewogCiBuYW1lc3BhY2UgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXRJbnRlcm5h
bCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHBy
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBnZW5l
cmF0ZUNvbmRpdGlvbigKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5
bW9ycGhpY0FjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTQ1LDcgKzQ1LDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiBuYW1lc3BhY2UgUG9s
eW1vcnBoaWNBY2Nlc3NJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiB2b2lkIEFj
Y2Vzc0dlbmVyYXRpb25SZXN1bHQ6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9wZXJ0eUNvbmRpdGlvbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9wZXJ0eUNvbmRpdGlv
bi5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
UHJvcGVydHlDb25kaXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzMiw3ICszMzIsNyBAQCBz
dHJ1Y3QgUHJvcGVydHlDb25kaXRpb25IYXNoIHsKICAgICB7CiAgICAgICAgIHJldHVybiBhID09
IGI7CiAgICAgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JE
ZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAkocmV2
aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0
ZWRUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw3OCArMzgsNzggQEAgbmFtZXNwYWNlIEpT
QyB7CiBjbGFzcyBTdHJ1Y3R1cmU7CiAKIHR5cGVkZWYgdWludDY0X3QgU3BlY3VsYXRlZFR5cGU7
Ci1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbmUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDA7IC8vIFdlIGRvbid0IGtub3cgYW55dGhpbmcgeWV0Lgotc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGaW5hbE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRmluYWxPYmplY3QuCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDF1bGwgPDwgMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNBcnJheS4KLXN0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVuY3Rpb25XaXRoRGVmYXVsdEhhc0luc3RhbmNlICAgID0g
MXVsbCA8PCAyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0Z1bmN0aW9uIHRoYXQgaGFzIGl0cyBJ
bXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlIHR5cGUgaW5mbyBmbGFncyBiaXQgc2V0Lgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdW5jdGlvbldpdGhOb25EZWZhdWx0SGFzSW5z
dGFuY2UgPSAxdWxsIDw8IDM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRnVuY3Rpb24gdGhhdCBk
b2VzIG5vdCBoYXZlIGl0cyBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlIHR5cGUgaW5mbyBm
bGFncyBiaXQgc2V0Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdW5jdGlvbiAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRnVuY3Rpb25XaXRoRGVmYXVsdEhhc0luc3Rh
bmNlIHwgU3BlY0Z1bmN0aW9uV2l0aE5vbkRlZmF1bHRIYXNJbnN0YW5jZTsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgSlNGdW5jdGlvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50
OEFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA0OyAvLyBJdCdzIGRlZmlu
aXRlbHkgYW4gSW50OEFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50MTZBcnJheSAgICAgICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCA1OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MTZBcnJheSBvciBvbmUgb2YgaXRz
IHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyQXJyYXkg
ICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNjsgLy8gSXQncyBkZWZpbml0ZWx5IGFu
IEludDMyQXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNVaW50OEFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8
IDc7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50OEFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xh
c3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjVWludDhDbGFtcGVkQXJyYXkg
ICAgICAgICAgICAgICAgID0gMXVsbCA8PCA4OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDhD
bGFtcGVkQXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNVaW50MTZBcnJheSAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8
IDk7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50MTZBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNs
YXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1VpbnQzMkFycmF5ICAgICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50
MzJBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY0Zsb2F0MzJBcnJheSAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTE7
IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50MTZBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNz
ZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Zsb2F0NjRBcnJheSAgICAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMTI7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50MTZB
cnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY1R5cGVkQXJyYXlWaWV3ICAgICAgICAgICAgICAgICAgICA9IFNwZWNJbnQ4QXJyYXkg
fCBTcGVjSW50MTZBcnJheSB8IFNwZWNJbnQzMkFycmF5IHwgU3BlY1VpbnQ4QXJyYXkgfCBTcGVj
VWludDhDbGFtcGVkQXJyYXkgfCBTcGVjVWludDE2QXJyYXkgfCBTcGVjVWludDMyQXJyYXkgfCBT
cGVjRmxvYXQzMkFycmF5IHwgU3BlY0Zsb2F0NjRBcnJheTsKLXN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjRGlyZWN0QXJndW1lbnRzICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAx
MzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGlyZWN0QXJndW1lbnRzIG9iamVjdC4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU2NvcGVkQXJndW1lbnRzICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCAxNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU2NvcGVkQXJndW1lbnRzIG9iamVj
dC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nT2JqZWN0ICAgICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCAxNTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU3RyaW5nT2Jq
ZWN0Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNSZWdFeHBPYmplY3QgICAgICAg
ICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBSZWdFeHBP
YmplY3QgKGFuZCBub3QgYW55IHN1YmNsYXNzIG9mIFJlZ0V4cE9iamVjdCkuCi1zdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY1Byb21pc2VPYmplY3QgICAgICAgICAgICAgICAgICAgICA9
IDF1bGwgPDwgMTc7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFByb21pc2Ugb2JqZWN0IG9yIG9uZSBv
ZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTWFwT2Jq
ZWN0ICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxODsgLy8gSXQncyBkZWZpbml0
ZWx5IGEgTWFwIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY1NldE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgMTk7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBz
dWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNXZWFrTWFwT2JqZWN0
ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBX
ZWFrTWFwIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY1dlYWtTZXRPYmplY3QgICAgICAgICAgICAgICAgICAgICA9IDF1bGwg
PDwgMjE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFdlYWtTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMg
c3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3Qg
ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
UHJveHkgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjRGVyaXZlZEFycmF5ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8
PCAyMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGVyaXZlZEFycmF5IG9iamVjdC4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0T3RoZXIgICAgICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCAyNDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpTRmlu
YWxPYmplY3QsIEpTQXJyYXksIG9yIEpTRnVuY3Rpb24uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjU7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgot
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdWYXIgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5k
IGl0J3Mgbm90IGFuIGlkZW50aWZpZXIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNTdHJpbmdJZGVudCB8IFNw
ZWNTdHJpbmdWYXI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLgotc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDI3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCi1zdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0NlbGxPdGhlciAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwg
PDwgMjg7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2Yg
SlNPYmplY3QgYW5kIGRlZmluaXRlbHkgbm90IGEgSlNTdHJpbmcsIEJpZ0ludCwgb3IgU3ltYm9s
Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxdWxsIDw8IDI5OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0
aCB2YWx1ZSAwIG9yIDEuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkJvb2xJ
bnQzMiAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzA7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90aGVyIHRoYW4gMCBvciAxLgotc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMk9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVj
Qm9vbEludDMyIHwgU3BlY05vbkJvb2xJbnQzMjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMy
LgotCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyQXNJbnQ1MiAgICAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzE7IC8vIEl0J3MgYW4gSW50NTIgYW5kIGl0IGNhbiBm
aXQgaW4gYW4gaW50MzIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludDMy
QXNJbnQ1MiAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzI7IC8vIEl0J3MgYW4gSW50NTIg
YW5kIGl0IGNhbid0IGZpdCBpbiBhbiBpbnQzMi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjSW50NTJBbnkgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludDMyQXNJbnQ1
MiB8IFNwZWNOb25JbnQzMkFzSW50NTI7IC8vIEl0J3MgYW55IGtpbmQgb2YgSW50NTIuCi0KLXN0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55SW50QXNEb3VibGUgICAgICAgICAgICAg
ICAgICAgID0gMXVsbCA8PCAzMzsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBpdCdz
IGluc2lkZSBhIGRvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50
QXNEb3VibGUgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNDsgLy8gSXQncyBkZWZpbml0
ZWx5IG5vdCBhbiBJbnQ1MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91Ymxl
Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVSZWFsICAgICAgICAgICAg
ICAgICAgICAgICAgPSBTcGVjTm9uSW50QXNEb3VibGUgfCBTcGVjQW55SW50QXNEb3VibGU7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIG5vbi1OYU4gZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNEb3VibGVQdXJlTmFOICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM1
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyBzYWZlIHRvIHRhZyAoaS5lLiBwdXJl
KS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFOICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQg
aXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNEb3VibGVOYU4gICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRG91YmxlUHVy
ZU5hTiB8IFNwZWNEb3VibGVJbXB1cmVOYU47IC8vIEl0J3MgZGVmaW5pdGVseSBzb21lIGtpbmQg
b2YgTmFOLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZURvdWJsZSAg
ICAgICAgICAgICAgICAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVQdXJlTmFOOyAv
LyBJdCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91YmxlLCBidXQgaXQncyBkZWZpbml0
ZWx5IG5vdCBpbXB1cmUgTmFOLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxs
RG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3Vi
bGVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3VibGUuCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlUmVhbE51bWJlciAgICAgICAgICAgICAg
ICA9IFNwZWNJbnQzMk9ubHkgfCBTcGVjRG91YmxlUmVhbDsgLy8gSXQncyBlaXRoZXIgYW4gSW50
MzIgb3IgYSBEb3VibGVSZWFsLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxs
UmVhbE51bWJlciAgICAgICAgICAgICAgICAgICAgPSBTcGVjSW50MzJPbmx5IHwgU3BlY0ludDUy
QW55IHwgU3BlY0RvdWJsZVJlYWw7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91Ymxl
UmVhbCwgb3IgYW4gSW50NTIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVj
b2RlTnVtYmVyICAgICAgICAgICAgICAgICAgICA9IFNwZWNJbnQzMk9ubHkgfCBTcGVjQnl0ZWNv
ZGVEb3VibGU7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91YmxlLCBhbmQgdGhlIERv
dWJsZSBjYW5ub3QgYmUgYW4gaW1wdXJlIE5hTi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjSW50QW55Rm9ybWF0ICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludDUyQW55IHwg
U3BlY0ludDMyT25seSB8IFNwZWNBbnlJbnRBc0RvdWJsZTsKLQotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNGdWxsTnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjSW50
QW55Rm9ybWF0IHwgU3BlY0Z1bGxEb3VibGU7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyLCBJbnQ1
Miwgb3IgYSBEb3VibGUsIGFuZCB0aGUgRG91YmxlIGNhbiBiZSBpbXB1cmUgTmFOLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sZWFuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDM3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgotc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDM4OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVk
Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNaXNjICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsgLy8gSXQncyBkZWZpbml0ZWx5
IGVpdGhlciBhIGJvb2xlYW4sIE51bGwsIG9yIFVuZGVmaW5lZC4KLXN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8
PCAzOTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQmlnSW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCA0MDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQmlnSW50Lgotc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNEYXRhVmlld09iamVjdCAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDQxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0RhdGFWaWV3Lgotc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcmltaXRpdmUgICAgICAgICAgICAgICAgICAgICAgICAgPSBT
cGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjIHwg
U3BlY0JpZ0ludDsgLy8gSXQncyBhbnkgbm9uLU9iamVjdCBKU1ZhbHVlLgotc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBT
cGVjRmluYWxPYmplY3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJh
eVZpZXcgfCBTcGVjRGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNT
dHJpbmdPYmplY3QgfCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY1Byb21pc2VPYmplY3QgfCBTcGVj
TWFwT2JqZWN0IHwgU3BlY1NldE9iamVjdCB8IFNwZWNXZWFrTWFwT2JqZWN0IHwgU3BlY1dlYWtT
ZXRPYmplY3QgfCBTcGVjUHJveHlPYmplY3QgfCBTcGVjRGVyaXZlZEFycmF5IHwgU3BlY09iamVj
dE90aGVyIHwgU3BlY0RhdGFWaWV3T2JqZWN0OyAvLyBCaXRtYXNrIHVzZWQgZm9yIHRlc3Rpbmcg
Zm9yIGFueSBraW5kIG9mIG9iamVjdCBwcmVkaWN0aW9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNDZWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjT2JqZWN0
IHwgU3BlY1N0cmluZyB8IFNwZWNTeW1ib2wgfCBTcGVjQ2VsbE90aGVyIHwgU3BlY0JpZ0ludDsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNIZWFwVG9wICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQ2VsbCB8IFNwZWNC
eXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwg
ZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFOLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZVRvcCAgICAgICAgICAgICAgICAgICAg
ICAgPSBTcGVjSGVhcFRvcCB8IFNwZWNFbXB0eTsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJv
dmUsIGV4Y2VwdCBmb3IgU3BlY0ludDUyT25seSBhbmQgU3BlY0RvdWJsZUltcHVyZU5hTi4gQ29y
cmVzcG9uZHMgdG8gd2hhdCBjb3VsZCBiZSBmb3VuZCBpbiBhIGJ5dGVjb2RlIGxvY2FsLgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsVG9wICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSBTcGVjQnl0ZWNvZGVUb3AgfCBTcGVjRnVsbE51bWJlcjsgLy8gSXQgY2FuIGJlIGFu
eXRoaW5nIHRoYXQgYnl0ZWNvZGUgY291bGQgc2VlIHBsdXMgZXhvdGljIGVuY29kaW5ncyBvZiBu
dW1iZXJzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMDsgLy8gV2UgZG9uJ3Qga25vdyBhbnl0aGluZyB5ZXQu
CitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNGaW5hbE9iamVjdCAgICAgICAg
ICAgICAgICAgICAgICAgPSAxdWxsIDw8IDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRmluYWxP
YmplY3QuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNBcnJheSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpT
QXJyYXkuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNGdW5jdGlvbldpdGhE
ZWZhdWx0SGFzSW5zdGFuY2UgICAgPSAxdWxsIDw8IDI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpT
RnVuY3Rpb24gdGhhdCBoYXMgaXRzIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgdHlwZSBp
bmZvIGZsYWdzIGJpdCBzZXQuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNG
dW5jdGlvbldpdGhOb25EZWZhdWx0SGFzSW5zdGFuY2UgPSAxdWxsIDw8IDM7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIEpTRnVuY3Rpb24gdGhhdCBkb2VzIG5vdCBoYXZlIGl0cyBJbXBsZW1lbnRzRGVm
YXVsdEhhc0luc3RhbmNlIHR5cGUgaW5mbyBmbGFncyBiaXQgc2V0Lgorc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjRnVuY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgID0g
U3BlY0Z1bmN0aW9uV2l0aERlZmF1bHRIYXNJbnN0YW5jZSB8IFNwZWNGdW5jdGlvbldpdGhOb25E
ZWZhdWx0SGFzSW5zdGFuY2U7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRnVuY3Rpb24uCitzdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQ4QXJyYXkgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ4QXJyYXkgb3Ig
b25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjSW50MTZBcnJheSAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA1OyAvLyBJdCdz
IGRlZmluaXRlbHkgYW4gSW50MTZBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMkFycmF5ICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDY7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMkFycmF5IG9y
IG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY1VpbnQ4QXJyYXkgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNzsgLy8gSXQn
cyBkZWZpbml0ZWx5IGFuIFVpbnQ4QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3Rh
dGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjVWludDhDbGFtcGVkQXJyYXkgICAgICAg
ICAgICAgICAgID0gMXVsbCA8PCA4OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDhDbGFtcGVk
QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxh
dGVkVHlwZSBTcGVjVWludDE2QXJyYXkgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA5
OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFz
c2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjVWludDMyQXJyYXkgICAg
ICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVp
bnQzMkFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0Zsb2F0MzJBcnJheSAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwg
PDwgMTE7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50MTZBcnJheSBvciBvbmUgb2YgaXRzIHN1
YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNGbG9hdDY0QXJy
YXkgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDEyOyAvLyBJdCdzIGRlZmluaXRlbHkg
YW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjVHlwZWRBcnJheVZpZXcgICAgICAgICAgICAgICAgICAgID0g
U3BlY0ludDhBcnJheSB8IFNwZWNJbnQxNkFycmF5IHwgU3BlY0ludDMyQXJyYXkgfCBTcGVjVWlu
dDhBcnJheSB8IFNwZWNVaW50OENsYW1wZWRBcnJheSB8IFNwZWNVaW50MTZBcnJheSB8IFNwZWNV
aW50MzJBcnJheSB8IFNwZWNGbG9hdDMyQXJyYXkgfCBTcGVjRmxvYXQ2NEFycmF5Oworc3RhdGlj
IGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRGlyZWN0QXJndW1lbnRzICAgICAgICAgICAg
ICAgICAgID0gMXVsbCA8PCAxMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGlyZWN0QXJndW1lbnRz
IG9iamVjdC4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1Njb3BlZEFyZ3Vt
ZW50cyAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTQ7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IFNjb3BlZEFyZ3VtZW50cyBvYmplY3QuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBl
IFNwZWNTdHJpbmdPYmplY3QgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE1OyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBTdHJpbmdPYmplY3QuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0
ZWRUeXBlIFNwZWNSZWdFeHBPYmplY3QgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE2
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBSZWdFeHBPYmplY3QgKGFuZCBub3QgYW55IHN1YmNsYXNz
IG9mIFJlZ0V4cE9iamVjdCkuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQ
cm9taXNlT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE3OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBQcm9taXNlIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9y
IG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY1NldE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTk7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIFNldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3Rh
dGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha01hcE9iamVjdCAgICAgICAgICAg
ICAgICAgICAgID0gMXVsbCA8PCAyMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha01hcCBvYmpl
Y3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjV2Vha1NldE9iamVjdCAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMTsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha1NldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFz
c2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAg
ICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJv
eHkgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0Rlcml2ZWRBcnJheSAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwg
PDwgMjM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERlcml2ZWRBcnJheSBvYmplY3QuCitzdGF0aWMg
Y29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAgICAgICAgICAgICAgICAg
ICAgICAgPSAxdWxsIDw8IDI0OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3Qg
SlNGaW5hbE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KK3N0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgMjU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVu
dGlmaWVyLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
SlNTdHJpbmcsIGFuZCBpdCdzIG5vdCBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3Bl
Y1N0cmluZ0lkZW50IHwgU3BlY1N0cmluZ1ZhcjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJp
bmcuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1i
b2wuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsT3RoZXIgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0Nl
bGwgYnV0IG5vdCBhIHN1YmNsYXNzIG9mIEpTT2JqZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpT
U3RyaW5nLCBCaWdJbnQsIG9yIFN5bWJvbC4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY0Jvb2xJbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjk7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIDAgb3IgMS4KK3N0YXRpYyBjb25z
dGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICAgICAgICAgICAgICAg
ICA9IDF1bGwgPDwgMzA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90
aGVyIHRoYW4gMCBvciAxLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50
MzJPbmx5ICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0Jvb2xJbnQzMiB8IFNwZWNOb25C
b29sSW50MzI7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMi4KKworc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50MzJBc0ludDUyICAgICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCAzMTsgLy8gSXQncyBhbiBJbnQ1MiBhbmQgaXQgY2FuIGZpdCBpbiBhbiBpbnQzMi4K
K3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludDMyQXNJbnQ1MiAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzI7IC8vIEl0J3MgYW4gSW50NTIgYW5kIGl0IGNhbid0
IGZpdCBpbiBhbiBpbnQzMi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0lu
dDUyQW55ICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNJbnQzMkFzSW50NTIgfCBTcGVj
Tm9uSW50MzJBc0ludDUyOyAvLyBJdCdzIGFueSBraW5kIG9mIEludDUyLgorCitzdGF0aWMgY29u
c3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNBbnlJbnRBc0RvdWJsZSAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDMzOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIGl0J3MgaW5z
aWRlIGEgZG91YmxlLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50
QXNEb3VibGUgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNDsgLy8gSXQncyBkZWZpbml0
ZWx5IG5vdCBhbiBJbnQ1MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91Ymxl
Lgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUmVhbCAgICAgICAg
ICAgICAgICAgICAgICAgID0gU3BlY05vbkludEFzRG91YmxlIHwgU3BlY0FueUludEFzRG91Ymxl
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBub24tTmFOIGRvdWJsZS4KK3N0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZVB1cmVOYU4gICAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgMzU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHNhZmUgdG8gdGFnIChp
LmUuIHB1cmUpLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1w
dXJlTmFOICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0ZWx5
IGEgTmFOIHRoYXQgaXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgorc3RhdGljIGNvbnN0
ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlTmFOICAgICAgICAgICAgICAgICAgICAgICAg
ID0gU3BlY0RvdWJsZVB1cmVOYU4gfCBTcGVjRG91YmxlSW1wdXJlTmFOOyAvLyBJdCdzIGRlZmlu
aXRlbHkgc29tZSBraW5kIG9mIE5hTi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY0J5dGVjb2RlRG91YmxlICAgICAgICAgICAgICAgICAgICA9IFNwZWNEb3VibGVSZWFsIHwg
U3BlY0RvdWJsZVB1cmVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3Vi
bGUsIGJ1dCBpdCdzIGRlZmluaXRlbHkgbm90IGltcHVyZSBOYU4uCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsRG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgPSBT
cGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBv
ciBhIE5hTiBkb3VibGUuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRl
Y29kZVJlYWxOdW1iZXIgICAgICAgICAgICAgICAgPSBTcGVjSW50MzJPbmx5IHwgU3BlY0RvdWJs
ZVJlYWw7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91YmxlUmVhbC4KK3N0YXRpYyBj
b25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxSZWFsTnVtYmVyICAgICAgICAgICAgICAg
ICAgICA9IFNwZWNJbnQzMk9ubHkgfCBTcGVjSW50NTJBbnkgfCBTcGVjRG91YmxlUmVhbDsgLy8g
SXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGVSZWFsLCBvciBhbiBJbnQ1Mi4KK3N0YXRp
YyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlTnVtYmVyICAgICAgICAgICAg
ICAgICAgICA9IFNwZWNJbnQzMk9ubHkgfCBTcGVjQnl0ZWNvZGVEb3VibGU7IC8vIEl0J3MgZWl0
aGVyIGFuIEludDMyIG9yIGEgRG91YmxlLCBhbmQgdGhlIERvdWJsZSBjYW5ub3QgYmUgYW4gaW1w
dXJlIE5hTi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0ludEFueUZvcm1h
dCAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNJbnQ1MkFueSB8IFNwZWNJbnQzMk9ubHkgfCBT
cGVjQW55SW50QXNEb3VibGU7CisKK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0Z1bGxOdW1iZXIgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNJbnRBbnlGb3JtYXQgfCBT
cGVjRnVsbERvdWJsZTsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIsIEludDUyLCBvciBhIERvdWJs
ZSwgYW5kIHRoZSBEb3VibGUgY2FuIGJlIGltcHVyZSBOYU4uCitzdGF0aWMgY29uc3RleHByIFNw
ZWN1bGF0ZWRUeXBlIFNwZWNCb29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxs
IDw8IDM3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgorc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVs
bCA8PCAzODsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBOdWxsIG9yIFVuZGVmaW5lZC4KK3N0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY01pc2MgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IFNwZWNCb29sZWFuIHwgU3BlY090aGVyOyAvLyBJdCdzIGRlZmluaXRlbHkg
ZWl0aGVyIGEgYm9vbGVhbiwgTnVsbCwgb3IgVW5kZWZpbmVkLgorc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVs
bCA8PCAzOTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KK3N0YXRp
YyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0JpZ0ludCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDF1bGwgPDwgNDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJpZ0ludC4KK3N0YXRp
YyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0RhdGFWaWV3T2JqZWN0ICAgICAgICAgICAg
ICAgICAgICA9IDF1bGwgPDwgNDE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRGF0YVZpZXcuCitz
dGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQcmltaXRpdmUgICAgICAgICAgICAg
ICAgICAgICAgICAgPSBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51bWJl
ciB8IFNwZWNNaXNjIHwgU3BlY0JpZ0ludDsgLy8gSXQncyBhbnkgbm9uLU9iamVjdCBKU1ZhbHVl
Lgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gU3BlY0ZpbmFsT2JqZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1bmN0
aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwgU3BlY0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNTY29w
ZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2JqZWN0IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNwZWNQ
cm9taXNlT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8IFNwZWNTZXRPYmplY3QgfCBTcGVjV2Vha01h
cE9iamVjdCB8IFNwZWNXZWFrU2V0T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2
ZWRBcnJheSB8IFNwZWNPYmplY3RPdGhlciB8IFNwZWNEYXRhVmlld09iamVjdDsgLy8gQml0bWFz
ayB1c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KK3N0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IFNwZWNPYmplY3QgfCBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWND
ZWxsT3RoZXIgfCBTcGVjQmlnSW50OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwuCitzdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwVG9wICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSBTcGVjQ2VsbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJ
dCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBT
cGVjRG91YmxlSW1wdXJlTmFOLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVj
Qnl0ZWNvZGVUb3AgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0hlYXBUb3AgfCBTcGVjRW1w
dHk7IC8vIEl0IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJbnQ1Mk9u
bHkgYW5kIFNwZWNEb3VibGVJbXB1cmVOYU4uIENvcnJlc3BvbmRzIHRvIHdoYXQgY291bGQgYmUg
Zm91bmQgaW4gYSBieXRlY29kZSBsb2NhbC4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY0Z1bGxUb3AgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNCeXRlY29kZVRv
cCB8IFNwZWNGdWxsTnVtYmVyOyAvLyBJdCBjYW4gYmUgYW55dGhpbmcgdGhhdCBieXRlY29kZSBj
b3VsZCBzZWUgcGx1cyBleG90aWMgZW5jb2RpbmdzIG9mIG51bWJlcnMuCiAKIC8vIFNwZWNDZWxs
Q2hlY2sgaXMgdGhlIHR5cGUgc2V0IHJlcHJlc2VudGluZyB0aGUgdmFsdWVzIHRoYXQgY2FuIGZs
b3cgdGhyb3VnaCBhIGNlbGwgY2hlY2suCiAvLyBPbiA2NC1iaXQgcGxhdGZvcm1zLCB0aGUgZW1w
dHkgdmFsdWUgcGFzc2VzIGEgY2VsbCBjaGVjay4gQWxzbywgflNwZWNDZWxsQ2hlY2sgaXMgdGhl
IHR5cGUKIC8vIHNldCB0aGF0IHJlcHJlc2VudGluZyB0aGUgdmFsdWVzIHRoYXQgZmxvdyB0aHJv
dWdoIHdoZW4gdGVzdGluZyB0aGF0IHNvbWV0aGluZyBpcyBub3QgYSBjZWxsLgotc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsQ2hlY2sgICAgICAgICAgPSBpczY0Qml0KCkgPyAo
U3BlY0NlbGwgfCBTcGVjRW1wdHkpIDogU3BlY0NlbGw7CitzdGF0aWMgY29uc3RleHByIFNwZWN1
bGF0ZWRUeXBlIFNwZWNDZWxsQ2hlY2sgICAgICAgICAgPSBpczY0Qml0KCkgPyAoU3BlY0NlbGwg
fCBTcGVjRW1wdHkpIDogU3BlY0NlbGw7CiAKIHR5cGVkZWYgYm9vbCAoKlNwZWN1bGF0ZWRUeXBl
Q2hlY2tlcikoU3BlY3VsYXRlZFR5cGUpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAJKHJldmlzaW9uIDI0OTk1
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYg
RU5BQkxFKEpJVCkKIAogbmFtZXNwYWNlIFN0cnVjdHVyZVN0dWJJbmZvSW50ZXJuYWwgewotc3Rh
dGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZl
cmJvc2UgPSBmYWxzZTsKIH0KIAogU3RydWN0dXJlU3R1YkluZm86OlN0cnVjdHVyZVN0dWJJbmZv
KEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMjQ5OTU5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjcxLDcgKzI3MSw3IEBAIHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6
OmFkZEV4cHJlc3Npb25JbmYKIAogYm9vbCBVbmxpbmtlZENvZGVCbG9jazo6dHlwZVByb2ZpbGVy
RXhwcmVzc2lvbkluZm9Gb3JCeXRlY29kZU9mZnNldCh1bnNpZ25lZCBieXRlY29kZU9mZnNldCwg
dW5zaWduZWQmIHN0YXJ0RGl2b3QsIHVuc2lnbmVkJiBlbmREaXZvdCkKIHsKLSAgICBzdGF0aWMg
Y29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZl
cmJvc2UgPSBmYWxzZTsKICAgICBpZiAoIW1fcmFyZURhdGEpIHsKICAgICAgICAgaWYgKHZlcmJv
c2UpCiAgICAgICAgICAgICBkYXRhTG9nRigiRG9uJ3QgaGF2ZSBhc3NpZ25tZW50IGluZm8gZm9y
IG9mZnNldDoldVxuIiwgYnl0ZWNvZGVPZmZzZXQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmgJKHJldmlzaW9uIDI0OTk1
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDksOSArMTA5LDkgQEAgc3RydWN0IFVubGlua2VkU2ltcGxl
SnVtcFRhYmxlIHsKIGNsYXNzIFVubGlua2VkQ29kZUJsb2NrIDogcHVibGljIEpTQ2VsbCB7CiBw
dWJsaWM6CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAK
LSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAKICAgICBlbnVtIHsg
Q2FsbEZ1bmN0aW9uLCBBcHBseUZ1bmN0aW9uIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZEV2YWxDb2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRFdmFsQ29kZUJsb2NrLmgJKHJldmlz
aW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEV2
YWxDb2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBDYWNo
ZWRFdmFsQ29kZUJsb2NrOwogY2xhc3MgVW5saW5rZWRFdmFsQ29kZUJsb2NrIGZpbmFsIDogcHVi
bGljIFVubGlua2VkR2xvYmFsQ29kZUJsb2NrIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFVubGlu
a2VkR2xvYmFsQ29kZUJsb2NrIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICBzdGF0aWMgVW5saW5rZWRF
dmFsQ29kZUJsb2NrKiBjcmVhdGUoVk0mIHZtLCBjb25zdCBFeGVjdXRhYmxlSW5mbyYgaW5mbywg
T3B0aW9uU2V0PENvZGVHZW5lcmF0aW9uTW9kZT4gY29kZUdlbmVyYXRpb25Nb2RlKQogICAgIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Vu
bGlua2VkRnVuY3Rpb25Db2RlQmxvY2suaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25Db2RlQmxvY2suaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBDYWNoZWRGdW5jdGlvbkNvZGVCbG9jazsK
IGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sgZmluYWwgOiBwdWJsaWMgVW5saW5rZWRD
b2RlQmxvY2sgewogcHVibGljOgogICAgIHR5cGVkZWYgVW5saW5rZWRDb2RlQmxvY2sgQmFzZTsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJ
bW1vcnRhbDsKIAogICAgIHN0YXRpYyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBjcmVhdGUo
Vk0mIHZtLCBDb2RlVHlwZSBjb2RlVHlwZSwgY29uc3QgRXhlY3V0YWJsZUluZm8mIGluZm8sIE9w
dGlvblNldDxDb2RlR2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSkKICAgICB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1
dGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIGZyaWVuZCBjbGFzcyBDYWNo
ZWRGdW5jdGlvbkV4ZWN1dGFibGU7CiAKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFs
OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgogICAg
IHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQpAQCAtMTQyLDcgKzE0Miw3
IEBAIHB1YmxpYzoKICAgICBDb2RlRmVhdHVyZXMgZmVhdHVyZXMoKSBjb25zdCB7IHJldHVybiBt
X2ZlYXR1cmVzOyB9CiAgICAgYm9vbCBoYXNDYXB0dXJlZFZhcmlhYmxlcygpIGNvbnN0IHsgcmV0
dXJuIG1faGFzQ2FwdHVyZWRWYXJpYWJsZXM7IH0KIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5l
ZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rl
c3RydWN0aW9uID0gdHJ1ZTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCiAg
ICAgYm9vbCBpc0J1aWx0aW5GdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faXNCdWlsdGluRnVu
Y3Rpb247IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZE1v
ZHVsZVByb2dyYW1Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrLmgJKHJldmlzaW9uIDI0
OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZE1vZHVsZVBy
b2dyYW1Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBD
YWNoZWRNb2R1bGVDb2RlQmxvY2s7CiBjbGFzcyBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxv
Y2sgZmluYWwgOiBwdWJsaWMgVW5saW5rZWRHbG9iYWxDb2RlQmxvY2sgewogcHVibGljOgogICAg
IHR5cGVkZWYgVW5saW5rZWRHbG9iYWxDb2RlQmxvY2sgQmFzZTsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVy
ZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAogICAgIHN0
YXRpYyBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIGNyZWF0ZShWTSYgdm0sIGNvbnN0
IEV4ZWN1dGFibGVJbmZvJiBpbmZvLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2Rl
R2VuZXJhdGlvbk1vZGUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1VubGlua2VkUHJvZ3JhbUNvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZFByb2dyYW1Db2RlQmxvY2suaAkocmV2aXNpb24g
MjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkUHJvZ3Jh
bUNvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIENhY2hl
ZFByb2dyYW1Db2RlQmxvY2s7CiBjbGFzcyBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sgZmluYWwg
OiBwdWJsaWMgVW5saW5rZWRHbG9iYWxDb2RlQmxvY2sgewogcHVibGljOgogICAgIHR5cGVkZWYg
VW5saW5rZWRHbG9iYWxDb2RlQmxvY2sgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0
YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAogICAgIHN0YXRpYyBVbmxp
bmtlZFByb2dyYW1Db2RlQmxvY2sqIGNyZWF0ZShWTSYgdm0sIGNvbnN0IEV4ZWN1dGFibGVJbmZv
JiBpbmZvLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUp
CiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmls
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVBy
b2ZpbGUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1ZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMS0yMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsMTAgKzM4LDEw
IEBAIG5hbWVzcGFjZSBKU0MgewogCiB0ZW1wbGF0ZTx1bnNpZ25lZCBudW1iZXJPZkJ1Y2tldHNB
cmd1bWVudD4KIHN0cnVjdCBWYWx1ZVByb2ZpbGVCYXNlIHsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgbnVtYmVyT2ZCdWNrZXRzID0gbnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mU3BlY0ZhaWxCdWNrZXRzID0gMTsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgYnVja2V0SW5kZXhNYXNrID0gbnVtYmVyT2ZCdWNrZXRzIC0gMTsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdG90YWxOdW1iZXJPZkJ1Y2tldHMgPSBudW1iZXJP
ZkJ1Y2tldHMgKyBudW1iZXJPZlNwZWNGYWlsQnVja2V0czsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIG51bWJlck9mQnVja2V0cyA9IG51bWJlck9mQnVja2V0c0FyZ3VtZW50OworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZTcGVjRmFpbEJ1Y2tldHMgPSAxOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgYnVja2V0SW5kZXhNYXNrID0gbnVtYmVyT2ZC
dWNrZXRzIC0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHRvdGFsTnVtYmVyT2ZC
dWNrZXRzID0gbnVtYmVyT2ZCdWNrZXRzICsgbnVtYmVyT2ZTcGVjRmFpbEJ1Y2tldHM7CiAgICAg
CiAgICAgVmFsdWVQcm9maWxlQmFzZSgpCiAgICAgewpAQCAtMTQ2LDcgKzE0Niw3IEBAIHN0cnVj
dCBNaW5pbWFsVmFsdWVQcm9maWxlIDogcHVibGljIFZhbHUKIAogdGVtcGxhdGU8dW5zaWduZWQg
bG9nTnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ+CiBzdHJ1Y3QgVmFsdWVQcm9maWxlV2l0aExvZ051
bWJlck9mQnVja2V0cyA6IHB1YmxpYyBWYWx1ZVByb2ZpbGVCYXNlPDEgPDwgbG9nTnVtYmVyT2ZC
dWNrZXRzQXJndW1lbnQ+IHsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9nTnVtYmVyT2ZC
dWNrZXRzID0gbG9nTnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBsb2dOdW1iZXJPZkJ1Y2tldHMgPSBsb2dOdW1iZXJPZkJ1Y2tldHNBcmd1bWVu
dDsKICAgICAKICAgICBWYWx1ZVByb2ZpbGVXaXRoTG9nTnVtYmVyT2ZCdWNrZXRzKCkKICAgICAg
ICAgOiBWYWx1ZVByb2ZpbGVCYXNlPDEgPDwgbG9nTnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ+KCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJlZ2lz
dGVyLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9WaXJ0dWFsUmVnaXN0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwNSw4ICsxMDUs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0OwogCiBw
cml2YXRlOgotICAgIHN0YXRpYyBjb25zdCBpbnQgc19pbnZhbGlkVmlydHVhbFJlZ2lzdGVyID0g
MHgzZmZmZmZmZjsKLSAgICBzdGF0aWMgY29uc3QgaW50IHNfZmlyc3RDb25zdGFudFJlZ2lzdGVy
SW5kZXggPSBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleDsKKyAgICBzdGF0aWMgY29uc3RleHBy
IGludCBzX2ludmFsaWRWaXJ0dWFsUmVnaXN0ZXIgPSAweDNmZmZmZmZmOworICAgIHN0YXRpYyBj
b25zdGV4cHIgaW50IHNfZmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXggPSBGaXJzdENvbnN0YW50
UmVnaXN0ZXJJbmRleDsKIAogICAgIHN0YXRpYyBpbnQgbG9jYWxUb09wZXJhbmQoaW50IGxvY2Fs
KSB7IHJldHVybiAtMSAtIGxvY2FsOyB9CiAgICAgc3RhdGljIGludCBvcGVyYW5kVG9Mb2NhbChp
bnQgb3BlcmFuZCkgeyByZXR1cm4gLTEgLSBvcGVyYW5kOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC00NzUsOSArNDc1LDkgQEAgcHVibGljOgogICAgIH0KICAgICAKIHByaXZhdGU6Ci0gICAg
c3RhdGljIGNvbnN0IHVpbnRwdHJfdCBJc1RoaW5GbGFnICAgICAgICA9IDE7Ci0gICAgc3RhdGlj
IGNvbnN0IHVpbnRwdHJfdCBTdGF0ZU1hc2sgICAgICAgICA9IDY7Ci0gICAgc3RhdGljIGNvbnN0
IHVpbnRwdHJfdCBTdGF0ZVNoaWZ0ICAgICAgICA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50cHRyX3QgSXNUaGluRmxhZyAgICAgICAgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWlu
dHB0cl90IFN0YXRlTWFzayAgICAgICAgID0gNjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRw
dHJfdCBTdGF0ZVNoaWZ0ICAgICAgICA9IDE7CiAgICAgCiAgICAgc3RhdGljIGJvb2wgaXNUaGlu
KHVpbnRwdHJfdCBkYXRhKSB7IHJldHVybiBkYXRhICYgSXNUaGluRmxhZzsgfQogICAgIHN0YXRp
YyBib29sIGlzRmF0KHVpbnRwdHJfdCBkYXRhKSB7IHJldHVybiAhaXNUaGluKGRhdGEpOyB9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTg5
Nyw4ICs4OTcsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0T3V0T2ZMaW5l
RmluYWxseUhhbmRsZXIoUmVnaXN0ZXJJRCogZXhjZXB0aW9uUmVnaXN0ZXIsIFJlZ2lzdGVySUQq
IGNvbXBsZXRpb25UeXBlUmVnaXN0ZXIsIFRyeURhdGEqKTsKIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBpbnQgQ3VycmVudExleGljYWxTY29wZUluZGV4ID0gLTI7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBpbnQgT3V0ZXJtb3N0TGV4aWNhbFNjb3BlSW5kZXggPSAtMTsKKyAg
ICAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgQ3VycmVudExleGljYWxTY29wZUluZGV4ID0gLTI7
CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IE91dGVybW9zdExleGljYWxTY29wZUluZGV4
ID0gLTE7CiAKICAgICAgICAgaW50IGN1cnJlbnRMZXhpY2FsU2NvcGVJbmRleCgpIGNvbnN0CiAg
ICAgICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTGFiZWwu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0xhYmVs
LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvTGFiZWwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMzMsNyArMTMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICAgICAgdHlwZWRlZiBWZWN0b3I8aW50LCA4PiBKdW1wVmVjdG9yOwogCi0gICAgICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnZhbGlkTG9jYXRpb24gPSBVSU5UX01BWDsKKyAgICAg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBpbnZhbGlkTG9jYXRpb24gPSBVSU5UX01BWDsK
IAogICAgICAgICBpbnQgbV9yZWZDb3VudCB7IDAgfTsKICAgICAgICAgdW5zaWduZWQgbV9sb2Nh
dGlvbiB7IGludmFsaWRMb2NhdGlvbiB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkocmV2aXNpb24gMjQ5OTU5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjUsNyArMTY1LDcgQEAgUmVnaXN0ZXJJRCogVGhpc05vZGU6OmVt
aXRCeXRlY29kZShCeXRlYwogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZ2lzdGVySUQqIHJl
c3VsdCA9IGdlbmVyYXRvci5tb3ZlKGRzdCwgZ2VuZXJhdG9yLnRoaXNSZWdpc3RlcigpKTsKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdGhpc0xlbmd0aCA9IDQ7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCB0aGlzTGVuZ3RoID0gNDsKICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVU
eXBlKGdlbmVyYXRvci50aGlzUmVnaXN0ZXIoKSwgcG9zaXRpb24oKSwgSlNUZXh0UG9zaXRpb24o
LTEsIHBvc2l0aW9uKCkub2Zmc2V0ICsgdGhpc0xlbmd0aCwgLTEpKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9SZWdpc3Rl
cklELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9S
ZWdpc3RlcklELmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvUmVnaXN0ZXJJRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyOSw4ICsxMjksOCBAQCBu
YW1lc3BhY2UgSlNDIHsKIG5hbWVzcGFjZSBXVEYgewogCiAgICAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
VmVjdG9yVHJhaXRzPEpTQzo6UmVnaXN0ZXJJRD4gOiBWZWN0b3JUcmFpdHNCYXNlPHRydWUsIEpT
Qzo6UmVnaXN0ZXJJRD4gewotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0luaXRpYWxp
emF0aW9uID0gdHJ1ZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuSW5pdGlhbGl6ZVdp
dGhNZW1zZXQgPSB0cnVlOyAvLyBEZWZhdWx0IGluaXRpYWxpemF0aW9uIGp1c3Qgc2V0cyBldmVy
eXRoaW5nIHRvIDAgb3IgZmFsc2UsIHNvIHRoaXMgaXMgc2FmZS4KKyAgICAgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIG5lZWRzSW5pdGlhbGl6YXRpb24gPSB0cnVlOworICAgICAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSB0cnVlOyAvLyBEZWZhdWx0
IGluaXRpYWxpemF0aW9uIGp1c3Qgc2V0cyBldmVyeXRoaW5nIHRvIDAgb3IgZmFsc2UsIHNvIHRo
aXMgaXMgc2FmZS4KICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9CcmVha3BvaW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0JyZWFrcG9pbnQuaAkocmV2aXNpb24gMjQ5OTU5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0JyZWFrcG9pbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC01Nyw3ICs1Nyw3IEBAIHN0cnVjdCBCcmVha3BvaW50IDogcHVibGljIERvdWJseUxpbmtl
ZEwKICAgICB1bnNpZ25lZCBoaXRDb3VudCB7IDAgfTsKICAgICBib29sIHJlc29sdmVkIHsgZmFs
c2UgfTsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB1bnNwZWNpZmllZENvbHVtbiA9IFVJ
TlRfTUFYOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgdW5zcGVjaWZpZWRDb2x1bW4g
PSBVSU5UX01BWDsKIAogcHJpdmF0ZToKICAgICBCcmVha3BvaW50KiBtX3ByZXY7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJzZURhdGEuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclBhcnNlRGF0
YS5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlclBhcnNlRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMywxNiArMTMzLDE2
IEBAIHRlbXBsYXRlIDxEZWJ1Z2dlclBhcnNlSW5mb1RhZyBUPiBzdHJ1Y3QKIAogdGVtcGxhdGUg
PD4gc3RydWN0IERlYnVnZ2VyUGFyc2VJbmZvPFByb2dyYW0+IHsKICAgICB0eXBlZGVmIEpTQzo6
UHJvZ3JhbU5vZGUgUm9vdE5vZGU7Ci0gICAgc3RhdGljIGNvbnN0IFNvdXJjZVBhcnNlTW9kZSBw
YXJzZU1vZGUgPSBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1Nb2RlOwotICAgIHN0YXRpYyBjb25z
dCBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSA9IEpTUGFyc2VyU3RyaWN0TW9kZTo6Tm90
U3RyaWN0OwotICAgIHN0YXRpYyBjb25zdCBKU1BhcnNlclNjcmlwdE1vZGUgc2NyaXB0TW9kZSA9
IEpTUGFyc2VyU2NyaXB0TW9kZTo6Q2xhc3NpYzsKKyAgICBzdGF0aWMgY29uc3RleHByIFNvdXJj
ZVBhcnNlTW9kZSBwYXJzZU1vZGUgPSBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1Nb2RlOworICAg
IHN0YXRpYyBjb25zdGV4cHIgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUgPSBKU1BhcnNl
clN0cmljdE1vZGU6Ok5vdFN0cmljdDsKKyAgICBzdGF0aWMgY29uc3RleHByIEpTUGFyc2VyU2Ny
aXB0TW9kZSBzY3JpcHRNb2RlID0gSlNQYXJzZXJTY3JpcHRNb2RlOjpDbGFzc2ljOwogfTsKIAog
dGVtcGxhdGUgPD4gc3RydWN0IERlYnVnZ2VyUGFyc2VJbmZvPE1vZHVsZT4gewogICAgIHR5cGVk
ZWYgSlNDOjpNb2R1bGVQcm9ncmFtTm9kZSBSb290Tm9kZTsKLSAgICBzdGF0aWMgY29uc3QgU291
cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSA9IFNvdXJjZVBhcnNlTW9kZTo6TW9kdWxlRXZhbHVhdGVN
b2RlOwotICAgIHN0YXRpYyBjb25zdCBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSA9IEpT
UGFyc2VyU3RyaWN0TW9kZTo6U3RyaWN0OwotICAgIHN0YXRpYyBjb25zdCBKU1BhcnNlclNjcmlw
dE1vZGUgc2NyaXB0TW9kZSA9IEpTUGFyc2VyU2NyaXB0TW9kZTo6TW9kdWxlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSA9IFNvdXJjZVBhcnNlTW9kZTo6
TW9kdWxlRXZhbHVhdGVNb2RlOworICAgIHN0YXRpYyBjb25zdGV4cHIgSlNQYXJzZXJTdHJpY3RN
b2RlIHN0cmljdE1vZGUgPSBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmljdDsKKyAgICBzdGF0aWMg
Y29uc3RleHByIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlID0gSlNQYXJzZXJTY3JpcHRN
b2RlOjpNb2R1bGU7CiB9OwogCiB0ZW1wbGF0ZSA8RGVidWdnZXJQYXJzZUluZm9UYWcgVD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclByaW1pdGl2ZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQcmlt
aXRpdmVzLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlclByaW1pdGl2ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw5ICszMCw5IEBACiBu
YW1lc3BhY2UgSlNDIHsKIAogdHlwZWRlZiBzaXplX3QgU291cmNlSUQ7Ci1zdGF0aWMgY29uc3Qg
U291cmNlSUQgbm9Tb3VyY2VJRCA9IDA7CitzdGF0aWMgY29uc3RleHByIFNvdXJjZUlEIG5vU291
cmNlSUQgPSAwOwogCiB0eXBlZGVmIHNpemVfdCBCcmVha3BvaW50SUQ7Ci1zdGF0aWMgY29uc3Qg
QnJlYWtwb2ludElEIG5vQnJlYWtwb2ludElEID0gMDsKK3N0YXRpYyBjb25zdGV4cHIgQnJlYWtw
b2ludElEIG5vQnJlYWtwb2ludElEID0gMDsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJTY29wZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclNjb3BlLmgJKHJldmlz
aW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclNj
b3BlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA4LTIwMDksIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNz
IEpTU2NvcGU7CiBjbGFzcyBEZWJ1Z2dlclNjb3BlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxP
YmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlO
YW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlk
ZXNHZXRQcm9wZXJ0eU5hbWVzOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIERlYnVn
Z2VyU2NvcGUqIGNyZWF0ZShWTSYgdm0sIEpTU2NvcGUqIHNjb3BlKTsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oCShyZXZpc2lvbiAyNDk5NTkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzA0LDggKzMwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXAoUHJpbnRT
dHJlYW0mIG91dCkgY29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCB2YWx1ZVNoaWZ0ID0gMTU7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRvcFNoaWZ0
ID0gMTQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB2YWx1ZVNoaWZ0ID0gMTU7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB0b3BTaGlmdCA9IDE0OwogICAgIAogICAgIFBh
eWxvYWQgcGF5bG9hZEltcGwoKSBjb25zdAogICAgIHsKQEAgLTMyOSw3ICszMjksNyBAQCBwcml2
YXRlOgogc3RydWN0IEFic3RyYWN0SGVhcEhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNo
KGNvbnN0IEFic3RyYWN0SGVhcCYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3Rh
dGljIGJvb2wgZXF1YWwoY29uc3QgQWJzdHJhY3RIZWFwJiBhLCBjb25zdCBBYnN0cmFjdEhlYXAm
IGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBh
cmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2Fm
ZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZh
bHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dFZhbHVlLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTY3LDEyICs1NjcsMTIgQEAg
cHJpdmF0ZToKIG5hbWVzcGFjZSBXVEYgewogdGVtcGxhdGUgPD4KIHN0cnVjdCBWZWN0b3JUcmFp
dHM8SlNDOjpERkc6OkFic3RyYWN0VmFsdWU+IDogVmVjdG9yVHJhaXRzQmFzZTxmYWxzZSwgSlND
OjpERkc6OkFic3RyYWN0VmFsdWU+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBjYW5Jbml0aWFs
aXplV2l0aE1lbXNldCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbkluaXRp
YWxpemVXaXRoTWVtc2V0ID0gdHJ1ZTsKIH07CiAKIHRlbXBsYXRlIDw+CiBzdHJ1Y3QgSGFzaFRy
YWl0czxKU0M6OkRGRzo6QWJzdHJhY3RWYWx1ZT4gOiBHZW5lcmljSGFzaFRyYWl0czxKU0M6OkRG
Rzo6QWJzdHJhY3RWYWx1ZT4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1pl
cm8gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0g
dHJ1ZTsKIH07CiB9OwogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25Q
aGFzZS5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcg
KzUyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogbmFtZXNwYWNlIHsKIAog
bmFtZXNwYWNlIERGR0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2VJbnRlcm5hbCB7Ci1zdGF0aWMg
Y29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogfQogCiBjbGFzcyBBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlIDogcHVibGlj
IFBoYXNlIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsOSArODAsOSBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIG5hbWVzcGFjZSBERkdCeXRlQ29k
ZVBhcnNlckludGVybmFsIHsKICNpZmRlZiBOREVCVUcKLXN0YXRpYyBjb25zdCBib29sIHZlcmJv
c2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAjZWxz
ZQotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IHRydWU7CitzdGF0aWMgY29uc3RleHByIGJv
b2wgdmVyYm9zZSA9IHRydWU7CiAjZW5kaWYKIH0gLy8gbmFtZXNwYWNlIERGR0J5dGVDb2RlUGFy
c2VySW50ZXJuYWwKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFz
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFz
ZS5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q1NFUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiBuYW1lc3BhY2UgewogCiBuYW1lc3BhY2UgREZHQ1NFUGhh
c2VJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMg
Y29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiBjbGFzcyBJbXB1cmVEYXRhU2xv
dCB7CkBAIC0zNTMsNyArMzUzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gdGhlIG92ZXJoZWFk
IG9mIEhhc2hNYXBzIGNhbiBiZSBxdWl0ZSBoaWdoIGN1cnJlbnRseTogY2xlYXJpbmcgdGhlbSwg
b3IgZXZlbiByZW1vdmluZwogICAgICAgICAvLyBlbm91Z2ggdGhpbmdzIGZyb20gdGhlbSwgZGVs
ZXRlcyAob3IgcmVzaXplcykgdGhlaXIgYmFja2luZyBzdG9yZSBlYWdlcmx5LiBIZW5jZQogICAg
ICAgICAvLyBIYXNoTWFwcyBpbmR1Y2UgYSBsb3Qgb2YgbWFsbG9jIHRyYWZmaWMuCi0gICAgICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjYXBhY2l0eSA9IDEwMDsKKyAgICAgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBjYXBhY2l0eSA9IDEwMDsKICAgICAKICAgICAgICAgU21hbGxNYXBz
KCkKICAgICAgICAgICAgIDogbV9wdXJlTGVuZ3RoKDApCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0NvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29tbW9uLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw3ICszOCw3IEBAIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIHN0cnVjdCBOb2RlOwogCiB0eXBlZGVmIHVp
bnQzMl90IEJsb2NrSW5kZXg7Ci1zdGF0aWMgY29uc3QgQmxvY2tJbmRleCBOb0Jsb2NrID0gVUlO
VF9NQVg7CitzdGF0aWMgY29uc3RleHByIEJsb2NrSW5kZXggTm9CbG9jayA9IFVJTlRfTUFYOwog
CiAvLyBVc2UgUmVmQ2hpbGRyZW4gaWYgdGhlIGNoaWxkIHJlZiBjb3VudHMgaGF2ZW4ndCBhbHJl
YWR5IGJlZW4gYWRqdXN0ZWQgdXNpbmcKIC8vIG90aGVyIG1lYW5zIGFuZCBlaXRoZXIgb2YgdGhl
IGZvbGxvd2luZyBpcyB0cnVlOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
b21waWxhdGlvbktleS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29tcGlsYXRpb25LZXkuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDb21waWxhdGlvbktleS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg5LDcg
Kzg5LDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBDb21waWxhdGlvbktleUhhc2ggewogICAgIHN0YXRp
YyB1bnNpZ25lZCBoYXNoKGNvbnN0IENvbXBpbGF0aW9uS2V5JiBrZXkpIHsgcmV0dXJuIGtleS5o
YXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBDb21waWxhdGlvbktleSYgYSwg
Y29uc3QgQ29tcGlsYXRpb25LZXkmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBj
b25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwog
fTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEZXNpcmVkR2xvYmFsUHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRHbG9iYWxQcm9wZXJ0eS5oCShyZXZpc2lvbiAy
NDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRHbG9iYWxQcm9w
ZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC05NCw3ICs5NCw3IEBAIHByaXZhdGU6CiBzdHJ1Y3Qg
RGVzaXJlZEdsb2JhbFByb3BlcnR5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29u
c3QgRGVzaXJlZEdsb2JhbFByb3BlcnR5JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAg
ICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBEZXNpcmVkR2xvYmFsUHJvcGVydHkmIGEsIGNvbnN0
IERlc2lyZWRHbG9iYWxQcm9wZXJ0eSYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGlj
IGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7
CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0VkZ2VEb21pbmF0ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0VkZ2VEb21pbmF0ZXMuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdFZGdlRG9taW5hdGVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBF
ZGdlRG9taW5hdGVzIHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAKIHB1YmxpYzoK
ICAgICBFZGdlRG9taW5hdGVzKEdyYXBoJiBncmFwaCwgQmFzaWNCbG9jayogYmxvY2spCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Vwb2NoLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdFcG9jaC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Vwb2NoLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTA5LDgg
KzEwOSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAg
ICAKIHByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfbm9uZSA9IDA7Ci0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfZmlyc3QgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgc19ub25lID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNfZmly
c3QgPSAxOwogICAgIAogICAgIHVuc2lnbmVkIG1fZXBvY2g7CiB9OwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGb3JBbGxLaWxscy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRm9yQWxsS2lsbHMuaAkocmV2aXNpb24gMjQ5OTU5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGb3JBbGxLaWxscy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTEwMiw4ICsxMDIsOCBAQCB2b2lkIGZvckFsbEtpbGxlZE5vZGVzQXROb2RlSW5kZXgoCiAgICAg
R3JhcGgmIGdyYXBoLCBBdmFpbGFiaWxpdHlNYXAmIGF2YWlsYWJpbGl0eU1hcCwgQmFzaWNCbG9j
ayogYmxvY2ssIHVuc2lnbmVkIG5vZGVJbmRleCwKICAgICBjb25zdCBGdW5jdG9yJiBmdW5jdG9y
KQogewotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzZWVuSW5DbG9zdXJlRmxhZyA9IDE7Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNhbGxlZEZ1bmN0b3JGbGFnID0gMjsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIHNlZW5JbkNsb3N1cmVGbGFnID0gMTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIGNhbGxlZEZ1bmN0b3JGbGFnID0gMjsKICAgICBIYXNoTWFwPE5v
ZGUqLCB1bnNpZ25lZD4gZmxhZ3M7CiAgICAgCiAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChu
b2RlSW5kZXgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJl
dmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTMzLDcgKzExMzMsNyBAQCBCeXRlY29kZUtpbGxzJiBHcmFw
aDo6a2lsbHNGb3IoSW5saW5lQ2FsCiAKIGJvb2wgR3JhcGg6OmlzTGl2ZUluQnl0ZWNvZGUoVmly
dHVhbFJlZ2lzdGVyIG9wZXJhbmQsIENvZGVPcmlnaW4gY29kZU9yaWdpbikKIHsKLSAgICBzdGF0
aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IHZlcmJvc2UgPSBmYWxzZTsKICAgICAKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgZGF0YUxv
ZygiQ2hlY2tpbmcgb2Ygb3BlcmFuZCBpcyBsaXZlOiAiLCBvcGVyYW5kLCAiXG4iKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAkocmV2aXNpb24g
MjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQt
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTE0OSw3ICsxNDksNyBAQCBwcml2YXRlOgogc3RydWN0IEhlYXBM
b2NhdGlvbkhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEhlYXBMb2NhdGlv
biYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29u
c3QgSGVhcExvY2F0aW9uJiBhLCBjb25zdCBIZWFwTG9jYXRpb24mIGIpIHsgcmV0dXJuIGEgPT0g
YjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlP
ckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogTG9jYXRpb25LaW5kIGluZGV4ZWRQcm9wZXJ0eUxvY0Zv
clJlc3VsdFR5cGUoTm9kZUZsYWdzKTsKQEAgLTE5MCw3ICsxOTAsNyBAQCB0ZW1wbGF0ZTw+IHN0
cnVjdCBEZWZhdWx0SGFzaDxKU0M6OkRGRzo6CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBIYXNoVHJhaXRzOwogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkRGRzo6SGVh
cExvY2F0aW9uPiA6IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxKU0M6OkRGRzo6SGVhcExvY2F0aW9u
PiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5Q
bGFjZUFic3RyYWN0U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM5LDcgKzM5LDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKIAogbmFtZXNwYWNlIERGR0luUGxhY2VBYnN0cmFjdFN0YXRlSW50ZXJuYWwgewotc3Rh
dGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZl
cmJvc2UgPSBmYWxzZTsKIH0KIAogSW5QbGFjZUFic3RyYWN0U3RhdGU6OkluUGxhY2VBYnN0cmFj
dFN0YXRlKEdyYXBoJiBncmFwaCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCShyZXZpc2lv
biAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ludGVnZXJDaGVja0Nv
bWJpbmluZ1BoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDcgKzQwLDcgQEAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogbmFtZXNwYWNlIERGR0ludGVnZXJDaGVja0Nv
bWJpbmluZ1BoYXNlSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNl
Oworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogY2xhc3MgSW50
ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdJbnRlZ2VyUmFuZ2VPcHRpbWl6YXRpb25QaGFzZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJbnRlZ2VyUmFuZ2VPcHRp
bWl6YXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiBu
YW1lc3BhY2UgewogCiBuYW1lc3BhY2UgREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2VJ
bnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29u
c3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogY29uc3QgdW5zaWduZWQgZ2l2ZVVwVGhy
ZXNob2xkID0gNTA7CiAKQEAgLTk3LDggKzk3LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
MDsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWluVmFndWVuZXNzID0gMDsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4VmFndWVuZXNzID0gMjsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIG1pblZhZ3VlbmVzcyA9IDA7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBtYXhWYWd1ZW5lc3MgPSAyOwogICAgIAogICAgIHN0YXRpYyBLaW5kIGZsaXBw
ZWQoS2luZCBraW5kKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmNw
cAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJbnZh
bGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw3
ICszOCw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNzIEludmFs
aWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewotICAgIHN0YXRpYyBj
b25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVy
Ym9zZSA9IGZhbHNlOwogICAgIAogcHVibGljOgogICAgIEludmFsaWRhdGlvblBvaW50SW5qZWN0
aW9uUGhhc2UoR3JhcGgmIGdyYXBoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdMSUNNUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTElDTVBoYXNlLmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdMSUNNUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDYsNyArNDYsNyBA
QAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBMSUNNUGhhc2UgOiBw
dWJsaWMgUGhhc2UgewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogCiAgICAgdXNpbmcgTmF0
dXJhbExvb3AgPSBTU0FOYXR1cmFsTG9vcDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdMYXp5Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTGF6eU5vZGUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdMYXp5Tm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDEyICszNSwxMiBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNzIExhenlOb2RlIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGpzQ29uc3RhbnRUYWcgPSAwOwotICAgIHN0YXRpYyBj
b25zdCBzaXplX3QgZG91YmxlQ29uc3RhbnRUYWcgPSAxOwotICAgIHN0YXRpYyBjb25zdCBzaXpl
X3QgaW50NTJDb25zdGFudFRhZyA9IDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QganND
b25zdGFudFRhZyA9IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgZG91YmxlQ29uc3Rh
bnRUYWcgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGludDUyQ29uc3RhbnRUYWcg
PSAyOwogCi0gICAgc3RhdGljIGNvbnN0IHVpbnRwdHJfdCB0YWdNYXNrID0gMHgzOwotICAgIHN0
YXRpYyBjb25zdCB1aW50cHRyX3QgcG9pbnRlck1hc2sgPSB+dGFnTWFzazsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVpbnRwdHJfdCB0YWdNYXNrID0gMHgzOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludHB0cl90IHBvaW50ZXJNYXNrID0gfnRhZ01hc2s7CiAKICAgICBleHBsaWNpdCBMYXp5Tm9k
ZShOb2RlKiBub2RlID0gbnVsbHB0cikKICAgICAgICAgOiBtX25vZGUobm9kZSkKQEAgLTE3Nyw3
ICsxNzcsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0
IEhhc2hUcmFpdHM7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPEpTQzo6REZHOjpMYXp5
Tm9kZT4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpERkc6OkxhenlOb2RlPiB7Ci0gICAg
c3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkSUQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkSUQuaAko
cmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmll
ZElELmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogc3RydWN0IE1pbmlm
aWVkSURIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBNaW5pZmllZElEJiBr
ZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBN
aW5pZmllZElEJiBhLCBjb25zdCBNaW5pZmllZElEJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAg
ICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gdHJ1ZTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKQEAgLTkzLDcgKzkzLDcg
QEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpERkc6OgogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFp
dHM8SlNDOjpERkc6Ok1pbmlmaWVkSUQ+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6REZH
OjpNaW5pZmllZElEPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9
IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFs
c2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTW92SGludFJlbW92YWxQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdNb3ZIaW50UmVtb3ZhbFBoYXNlLmNwcAkocmV2aXNpb24gMjQ5
OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNb3ZIaW50UmVtb3ZhbFBoYXNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBERkdNb3ZIaW50UmVtb3ZhbFBoYXNl
SW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNv
bnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogY2xhc3MgTW92SGludFJlbW92YWxQ
aGFzZSA6IHB1YmxpYyBQaGFzZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVGbG93UHJvamVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZUZsb3dQcm9qZWN0aW9uLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsb3dQcm9qZWN0aW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTI2LDcgKzEyNiw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwdWJsaWM6Ci0gICAgc3Rh
dGljIGNvbnN0IHVpbnRwdHJfdCBzaGFkb3dCaXQgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludHB0cl90IHNoYWRvd0JpdCA9IDE7CiAgICAgCiAgICAgdWludHB0cl90IG1fd29yZCB7IDAg
fTsKIH07CkBAIC0xMzQsNyArMTM0LDcgQEAgcHVibGljOgogc3RydWN0IE5vZGVGbG93UHJvamVj
dGlvbkhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKE5vZGVGbG93UHJvamVjdGlvbiBr
ZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChOb2RlRmxv
d1Byb2plY3Rpb24gYSwgTm9kZUZsb3dQcm9qZWN0aW9uIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQot
ICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1
ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSB0cnVlOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NTU0LDcgKzU1NCw3IEBAIGlubGluZSBib29sIGlzQXRvbWljc0ludHJpbnNpYyhOb2RlVHlwZSAK
ICAgICB9CiB9CiAKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhOdW1FeHRyYUF0b21pY3NBcmdz
ID0gMjsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4TnVtRXh0cmFBdG9taWNzQXJncyA9
IDI7CiAKIGlubGluZSB1bnNpZ25lZCBudW1FeHRyYUF0b21pY3NBcmdzKE5vZGVUeXBlIG9wKQog
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lu
a2luZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2UuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiBuYW1lc3BhY2UgewogCiBuYW1lc3BhY2UgREZHT2JqZWN0QWxsb2NhdGlv
blNpbmtpbmdQaGFzZUludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIC8vIEluIG9y
ZGVyIHRvIHNpbmsgb2JqZWN0IGN5Y2xlcywgd2UgdXNlIGEgcG9pbnRzLXRvIGFuYWx5c2lzIGNv
dXBsZWQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGhhbnRvbUluc2VydGlv
blBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Bo
YW50b21JbnNlcnRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUGhhbnRvbUluc2VydGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIG5hbWVzcGFj
ZSB7CiAKIG5hbWVzcGFjZSBERkdQaGFudG9tSW5zZXJ0aW9uUGhhc2VJbnRlcm5hbCB7Ci1zdGF0
aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVy
Ym9zZSA9IGZhbHNlOwogfQogCiBjbGFzcyBQaGFudG9tSW5zZXJ0aW9uUGhhc2UgOiBwdWJsaWMg
UGhhc2UgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcm9tb3RlZEhlYXBM
b2NhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJv
bW90ZWRIZWFwTG9jYXRpb24uaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcm9tb3RlZEhlYXBMb2NhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgUHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0
b3JIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBQcm9tb3RlZExvY2F0aW9u
RGVzY3JpcHRvciYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wg
ZXF1YWwoY29uc3QgUHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3ImIGEsIGNvbnN0IFByb21vdGVk
TG9jYXRpb25EZXNjcmlwdG9yJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29u
c3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07
CiAKIGNsYXNzIFByb21vdGVkSGVhcExvY2F0aW9uIHsKQEAgLTIwNCw3ICsyMDQsNyBAQCBwcml2
YXRlOgogc3RydWN0IFByb21vdGVkSGVhcExvY2F0aW9uSGFzaCB7CiAgICAgc3RhdGljIHVuc2ln
bmVkIGhhc2goY29uc3QgUHJvbW90ZWRIZWFwTG9jYXRpb24mIGtleSkgeyByZXR1cm4ga2V5Lmhh
c2goKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFByb21vdGVkSGVhcExvY2F0aW9u
JiBhLCBjb25zdCBQcm9tb3RlZEhlYXBMb2NhdGlvbiYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0g
ICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRl
ZCA9IHRydWU7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkBAIC0yMjAsNyArMjIw
LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpERkc6OgogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hU
cmFpdHM8SlNDOjpERkc6OlByb21vdGVkSGVhcExvY2F0aW9uPiA6IFNpbXBsZUNsYXNzSGFzaFRy
YWl0czxKU0M6OkRGRzo6UHJvbW90ZWRIZWFwTG9jYXRpb24+IHsKLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
cnVjdCBEZWZhdWx0SGFzaDsKQEAgLTIzMCw3ICsyMzAsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBE
ZWZhdWx0SGFzaDxKU0M6OkRGRzo6CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNo
VHJhaXRzOwogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkRGRzo6UHJvbW90ZWRM
b2NhdGlvbkRlc2NyaXB0b3I+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6REZHOjpQcm9t
b3RlZExvY2F0aW9uRGVzY3JpcHRvcj4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFs
dWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlz
WmVybyA9IGZhbHNlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1Byb3BlcnR5VHlwZUtleS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJvcGVydHlUeXBlS2V5LmgJKHJldmlzaW9uIDI0OTk1
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJvcGVydHlUeXBlS2V5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgUHJvcGVydHlUeXBl
S2V5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgUHJvcGVydHlUeXBlS2V5
JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25z
dCBQcm9wZXJ0eVR5cGVLZXkmIGEsIGNvbnN0IFByb3BlcnR5VHlwZUtleSYgYikgeyByZXR1cm4g
YSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRl
bGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkBA
IC0xMTcsNyArMTE3LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpERkc6
OgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4g
c3RydWN0IEhhc2hUcmFpdHM8SlNDOjpERkc6OlByb3BlcnR5VHlwZUtleT4gOiBTaW1wbGVDbGFz
c0hhc2hUcmFpdHM8SlNDOjpERkc6OlByb3BlcnR5VHlwZUtleT4gewotICAgIHN0YXRpYyBjb25z
dCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1B1cmVWYWx1ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHVyZVZhbHVlLmgJKHJldmlzaW9uIDI0
OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHVyZVZhbHVlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMTQ1LDcgKzE0NSw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgUHVyZVZhbHVlSGFzaCB7
CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgUHVyZVZhbHVlJiBrZXkpIHsgcmV0dXJu
IGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBQdXJlVmFsdWUmIGEs
IGNvbnN0IFB1cmVWYWx1ZSYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0
IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9Owog
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkBAIC0xNTksNyArMTU5LDcgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpERkc6OgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpERkc6
OlB1cmVWYWx1ZT4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpERkc6OlB1cmVWYWx1ZT4g
ewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1B1dFN0
YWNrU2lua2luZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1B1dFN0YWNrU2lua2luZ1BoYXNlLmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQdXRTdGFja1NpbmtpbmdQaGFzZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBERkdQdXRTdGFja1NpbmtpbmdQaGFzZUludGVy
bmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4
cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIGNsYXNzIFB1dFN0YWNrU2lua2luZ1BoYXNl
IDogcHVibGljIFBoYXNlIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVn
aXN0ZXJCYW5rLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdS
ZWdpc3RlckJhbmsuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdSZWdpc3RlckJhbmsuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02OSwxMCArNjksMTAgQEAgbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogdGVtcGxhdGU8Y2xhc3MgQmFua0luZm8+CiBj
bGFzcyBSZWdpc3RlckJhbmsgewogICAgIHR5cGVkZWYgdHlwZW5hbWUgQmFua0luZm86OlJlZ2lz
dGVyVHlwZSBSZWdJRDsKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IE5VTV9SRUdTID0gQmFua0lu
Zm86Om51bWJlck9mUmVnaXN0ZXJzOworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IE5VTV9S
RUdTID0gQmFua0luZm86Om51bWJlck9mUmVnaXN0ZXJzOwogCiAgICAgdHlwZWRlZiB1aW50MzJf
dCBTcGlsbEhpbnQ7Ci0gICAgc3RhdGljIGNvbnN0IFNwaWxsSGludCBTcGlsbEhpbnRJbnZhbGlk
ID0gMHhmZmZmZmZmZjsKKyAgICBzdGF0aWMgY29uc3RleHByIFNwaWxsSGludCBTcGlsbEhpbnRJ
bnZhbGlkID0gMHhmZmZmZmZmZjsKIAogcHVibGljOgogICAgIFJlZ2lzdGVyQmFuaygpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUNvbnZlcnNpb25QaGFzZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FDb252ZXJzaW9uUGhh
c2UuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NTQUNvbnZlcnNpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OCw3ICs0OCw3IEBA
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNzIFNTQUNvbnZlcnNpb25Q
aGFzZSA6IHB1YmxpYyBQaGFzZSB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZh
bHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCiBw
dWJsaWM6CiAgICAgU1NBQ29udmVyc2lvblBoYXNlKEdyYXBoJiBncmFwaCkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcAkocmV2
aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmlu
Z1BoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw3ICszNyw3IEBACiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNzIFNTQUxvd2VyaW5nUGhhc2UgOiBwdWJsaWMg
UGhhc2UgewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAogcHVibGljOgogICAgIFNT
QUxvd2VyaW5nUGhhc2UoR3JhcGgmIGdyYXBoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNjMwLDcgKzI2MzAsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91
YmxlUmVwKE5vCiAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc051bWJlciA9IG1faml0
LmJyYW5jaElmTnVtYmVyKG9wMUdQUik7CiAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBp
c1VuZGVmaW5lZCA9IG1faml0LmJyYW5jaElmVW5kZWZpbmVkKG9wMUdQUik7CiAKLSAgICAgICAg
ICAgIHN0YXRpYyBjb25zdCBkb3VibGUgemVybyA9IDA7CisgICAgICAgICAgICBzdGF0aWMgY29u
c3RleHByIGRvdWJsZSB6ZXJvID0gMDsKICAgICAgICAgICAgIG1faml0LmxvYWREb3VibGUoVHJ1
c3RlZEltbVB0cigmemVybyksIHJlc3VsdEZQUik7CiAKICAgICAgICAgICAgIEpJVENvbXBpbGVy
OjpKdW1wIGlzTnVsbCA9IG1faml0LmJyYW5jaElmTnVsbChvcDFHUFIpOwpAQCAtMjY0MCw3ICsy
NjQwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURvdWJsZVJlcChObwogICAgICAg
ICAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q2NChKSVRDb21waWxlcjo6WmVybywgb3AxR1BSLCBU
cnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oVGFnQml0Qm9vbCkpKSk7CiAKICAgICAg
ICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGlzRmFsc2UgPSBtX2ppdC5icmFuY2g2NChKSVRDb21w
aWxlcjo6RXF1YWwsIG9wMUdQUiwgVHJ1c3RlZEltbTY0KFZhbHVlRmFsc2UpKTsKLSAgICAgICAg
ICAgIHN0YXRpYyBjb25zdCBkb3VibGUgb25lID0gMTsKKyAgICAgICAgICAgIHN0YXRpYyBjb25z
dGV4cHIgZG91YmxlIG9uZSA9IDE7CiAgICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKFRydXN0
ZWRJbW1QdHIoJm9uZSksIHJlc3VsdEZQUik7CiAgICAgICAgICAgICBkb25lLmFwcGVuZChtX2pp
dC5qdW1wKCkpOwogICAgICAgICAgICAgZG9uZS5hcHBlbmQoaXNGYWxzZSk7CkBAIC0yNjc4LDcg
KzI2NzgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUmVwKE5vCiAgICAg
ICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc051bWJlciA9IG1faml0LmJyYW5jaDMyKEpJVENv
bXBpbGVyOjpCZWxvdywgb3AxVGFnR1BSLCBKSVRDb21waWxlcjo6VHJ1c3RlZEltbTMyKEpTVmFs
dWU6Okxvd2VzdFRhZyArIDEpKTsKICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGlzVW5k
ZWZpbmVkID0gbV9qaXQuYnJhbmNoSWZVbmRlZmluZWQob3AxVGFnR1BSKTsKIAotICAgICAgICAg
ICAgc3RhdGljIGNvbnN0IGRvdWJsZSB6ZXJvID0gMDsKKyAgICAgICAgICAgIHN0YXRpYyBjb25z
dGV4cHIgZG91YmxlIHplcm8gPSAwOwogICAgICAgICAgICAgbV9qaXQubG9hZERvdWJsZShUcnVz
dGVkSW1tUHRyKCZ6ZXJvKSwgcmVzdWx0RlBSKTsKIAogICAgICAgICAgICAgSklUQ29tcGlsZXI6
Okp1bXAgaXNOdWxsID0gbV9qaXQuYnJhbmNoSWZOdWxsKG9wMVRhZ0dQUik7CkBAIC0yNjg3LDcg
KzI2ODcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUmVwKE5vCiAgICAg
ICAgICAgICBERkdfVFlQRV9DSEVDSyhKU1ZhbHVlUmVncyhvcDFUYWdHUFIsIG9wMVBheWxvYWRH
UFIpLCBub2RlLT5jaGlsZDEoKSwgflNwZWNDZWxsLCBtX2ppdC5icmFuY2hJZk5vdEJvb2xlYW4o
b3AxVGFnR1BSLCBJbnZhbGlkR1BSUmVnKSk7CiAKICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpK
dW1wIGlzRmFsc2UgPSBtX2ppdC5icmFuY2hUZXN0MzIoSklUQ29tcGlsZXI6Olplcm8sIG9wMVBh
eWxvYWRHUFIsIFRydXN0ZWRJbW0zMigxKSk7Ci0gICAgICAgICAgICBzdGF0aWMgY29uc3QgZG91
YmxlIG9uZSA9IDE7CisgICAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBvbmUgPSAx
OwogICAgICAgICAgICAgbV9qaXQubG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZvbmUpLCByZXN1
bHRGUFIpOwogICAgICAgICAgICAgZG9uZS5hcHBlbmQobV9qaXQuanVtcCgpKTsKICAgICAgICAg
ICAgIGRvbmUuYXBwZW5kKGlzRmFsc2UpOwpAQCAtMjgwNyw5ICsyODA3LDkgQEAgc3RhdGljIHZv
aWQgY29tcGlsZUNsYW1wSW50ZWdlclRvQnl0ZShKSQogc3RhdGljIHZvaWQgY29tcGlsZUNsYW1w
RG91YmxlVG9CeXRlKEpJVENvbXBpbGVyJiBqaXQsIEdQUlJlZyByZXN1bHQsIEZQUlJlZyBzb3Vy
Y2UsIEZQUlJlZyBzY3JhdGNoKQogewogICAgIC8vIFVub3JkZXJlZCBjb21wYXJlIHNvIHdlIHBp
Y2sgdXAgTmFOCi0gICAgc3RhdGljIGNvbnN0IGRvdWJsZSB6ZXJvID0gMDsKLSAgICBzdGF0aWMg
Y29uc3QgZG91YmxlIGJ5dGVNYXggPSAyNTU7Ci0gICAgc3RhdGljIGNvbnN0IGRvdWJsZSBoYWxm
ID0gMC41OworICAgIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIHplcm8gPSAwOworICAgIHN0YXRp
YyBjb25zdGV4cHIgZG91YmxlIGJ5dGVNYXggPSAyNTU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBk
b3VibGUgaGFsZiA9IDAuNTsKICAgICBqaXQubG9hZERvdWJsZShKSVRDb21waWxlcjo6VHJ1c3Rl
ZEltbVB0cigmemVybyksIHNjcmF0Y2gpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHRvb1Nt
YWxsID0gaml0LmJyYW5jaERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTGVzc1RoYW5PckVx
dWFsT3JVbm9yZGVyZWQsIHNvdXJjZSwgc2NyYXRjaCk7CiAgICAgaml0LmxvYWREb3VibGUoSklU
Q29tcGlsZXI6OlRydXN0ZWRJbW1QdHIoJmJ5dGVNYXgpLCBzY3JhdGNoKTsKQEAgLTU1OTgsNyAr
NTU5OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFJvdW5kaW4KICAgICAg
ICAgICAgICAgICBGUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogICAgICAgICAgICAgICAgIEZQ
UlJlZyByZXN1bHRGUFIgPSByZXN1bHQuZnByKCk7CiAgICAgICAgICAgICAgICAgaWYgKHByb2R1
Y2VzSW50ZWdlcihub2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSAmJiAhc2hvdWxkQ2hlY2tOZWdh
dGl2ZVplcm8obm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgc3RhdGljIGNvbnN0IGRvdWJsZSBoYWxmQ29uc3RhbnQgPSAwLjU7CisgICAgICAgICAgICAg
ICAgICAgIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhhbGZDb25zdGFudCA9IDAuNTsKICAgICAg
ICAgICAgICAgICAgICAgbV9qaXQubG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZoYWxmQ29uc3Rh
bnQpLCByZXN1bHRGUFIpOwogICAgICAgICAgICAgICAgICAgICBtX2ppdC5hZGREb3VibGUodmFs
dWVGUFIsIHJlc3VsdEZQUik7CiAgICAgICAgICAgICAgICAgICAgIG1faml0LmZsb29yRG91Ymxl
KHJlc3VsdEZQUiwgcmVzdWx0RlBSKTsKQEAgLTU2MDcsMTIgKzU2MDcsMTIgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoUm91bmRpbgogCiAgICAgICAgICAgICAgICAgICAgIEZQ
UlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwogICAgICAgICAgICAgICAgICAgICBGUFJSZWcgc2Ny
YXRjaEZQUiA9IHNjcmF0Y2guZnByKCk7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXRpYyBjb25z
dCBkb3VibGUgaGFsZkNvbnN0YW50ID0gLTAuNTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGlj
IGNvbnN0ZXhwciBkb3VibGUgaGFsZkNvbnN0YW50ID0gLTAuNTsKICAgICAgICAgICAgICAgICAg
ICAgbV9qaXQubG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZoYWxmQ29uc3RhbnQpLCBzY3JhdGNo
RlBSKTsKICAgICAgICAgICAgICAgICAgICAgbV9qaXQuYWRkRG91YmxlKHJlc3VsdEZQUiwgc2Ny
YXRjaEZQUik7CiAKICAgICAgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgc2hvdWxk
VXNlQ2VpbGVkID0gbV9qaXQuYnJhbmNoRG91YmxlKEpJVENvbXBpbGVyOjpEb3VibGVMZXNzVGhh
bk9yRXF1YWwsIHNjcmF0Y2hGUFIsIHZhbHVlRlBSKTsKLSAgICAgICAgICAgICAgICAgICAgc3Rh
dGljIGNvbnN0IGRvdWJsZSBvbmVDb25zdGFudCA9IC0xLjA7CisgICAgICAgICAgICAgICAgICAg
IHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIG9uZUNvbnN0YW50ID0gLTEuMDsKICAgICAgICAgICAg
ICAgICAgICAgbV9qaXQubG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZvbmVDb25zdGFudCksIHNj
cmF0Y2hGUFIpOwogICAgICAgICAgICAgICAgICAgICBtX2ppdC5hZGREb3VibGUoc2NyYXRjaEZQ
UiwgcmVzdWx0RlBSKTsKICAgICAgICAgICAgICAgICAgICAgc2hvdWxkVXNlQ2VpbGVkLmxpbmso
Jm1faml0KTsKQEAgLTU4MDIsNyArNTgwMiw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBjb21waWxlQXJpdGgKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2tpcEZhc3RQYXRo
OwogICAgIHNraXBGYXN0UGF0aC5hcHBlbmQoYXNzZW1ibGVyLmJyYW5jaDMyKE1hY3JvQXNzZW1i
bGVyOjpBYm92ZSwgeU9wZXJhbmQsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIobWF4RXhw
b25lbnRGb3JJbnRlZ2VyTWF0aFBvdykpKTsKIAotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgb25l
Q29uc3RhbnQgPSAxLjA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgb25lQ29uc3RhbnQg
PSAxLjA7CiAgICAgYXNzZW1ibGVyLmxvYWREb3VibGUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW1QdHIoJm9uZUNvbnN0YW50KSwgcmVzdWx0KTsKIAogICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJl
bCBzdGFydExvb3AoYXNzZW1ibGVyLmxhYmVsKCkpOwpAQCAtNTg5Myw4ICs1ODkzLDggQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoUG93KE5vZAogCiAgICAgaWYgKG5vZGUtPmNo
aWxkMigpLT5pc0RvdWJsZUNvbnN0YW50KCkpIHsKICAgICAgICAgZG91YmxlIGV4cG9uZW50ID0g
bm9kZS0+Y2hpbGQyKCktPmFzTnVtYmVyKCk7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUg
aW5maW5pdHlDb25zdGFudCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHko
KTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBtaW51c0luZmluaXR5Q29uc3RhbnQgPSAt
c3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOworICAgICAgICBzdGF0aWMg
Y29uc3RleHByIGRvdWJsZSBpbmZpbml0eUNvbnN0YW50ID0gc3RkOjpudW1lcmljX2xpbWl0czxk
b3VibGU+OjppbmZpbml0eSgpOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBtaW51
c0luZmluaXR5Q29uc3RhbnQgPSAtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0
eSgpOwogICAgICAgICBpZiAoZXhwb25lbnQgPT0gMC41KSB7CiAgICAgICAgICAgICBTcGVjdWxh
dGVEb3VibGVPcGVyYW5kIHhPcGVyYW5kKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAg
ICAgIEZQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CkBAIC01OTM0LDcgKzU5MzQsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhQb3coTm9kCiAgICAgICAgICAgICBtX2ppdC5s
b2FkRG91YmxlKFRydXN0ZWRJbW1QdHIoJm1pbnVzSW5maW5pdHlDb25zdGFudCksIHJlc3VsdEZw
cik7CiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCB4SXNNaW51c0luZmluaXR5ID0g
bV9qaXQuYnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVFcXVhbCwgeE9wZXJhbmRG
cHIsIHJlc3VsdEZwcik7CiAKLSAgICAgICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgb25lQ29u
c3RhbnQgPSAxLjsKKyAgICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIG9uZUNvbnN0
YW50ID0gMS47CiAgICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKFRydXN0ZWRJbW1QdHIoJm9u
ZUNvbnN0YW50KSwgcmVzdWx0RnByKTsKICAgICAgICAgICAgIG1faml0LnNxcnREb3VibGUoeE9w
ZXJhbmRGcHIsIHNjcmF0Y2hGUFIpOwogICAgICAgICAgICAgbV9qaXQuZGl2RG91YmxlKHJlc3Vs
dEZwciwgc2NyYXRjaEZQUiwgcmVzdWx0RnByKTsKQEAgLTEwNzg1LDcgKzEwNzg1LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdEJpbmFyeVN3aXRjaFN0cgogICAgIHVuc2lnbmVkIG51bUNo
ZWNrZWQsIHVuc2lnbmVkIGJlZ2luLCB1bnNpZ25lZCBlbmQsIEdQUlJlZyBidWZmZXIsIEdQUlJl
ZyBsZW5ndGgsCiAgICAgR1BSUmVnIHRlbXAsIHVuc2lnbmVkIGFscmVhZHlDaGVja2VkTGVuZ3Ro
LCBib29sIGNoZWNrZWRFeGFjdExlbmd0aCkKIHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsK
ICAgICAKICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICBkYXRhTG9nKCJXZSdyZSBkb3duIHRv
IHRoZSBmb2xsb3dpbmcgY2FzZXMsIGFscmVhZHlDaGVja2VkTGVuZ3RoID0gIiwgYWxyZWFkeUNo
ZWNrZWRMZW5ndGgsICI6XG4iKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3RhY2tMYXlvdXRQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTdGFja0xheW91dFBoYXNlLmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdGFja0xheW91dFBoYXNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAog
Y2xhc3MgU3RhY2tMYXlvdXRQaGFzZSA6IHB1YmxpYyBQaGFzZSB7Ci0gICAgc3RhdGljIGNvbnN0
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7CiAgICAgCiBwdWJsaWM6CiAgICAgU3RhY2tMYXlvdXRQaGFzZShHcmFwaCYgZ3Jh
cGgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmllckluc2Vy
dGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBERkdTdG9yZUJhcnJpZXJJbnNlcnRp
b25QaGFzZUludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0
YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIGVudW0gY2xhc3MgUGhh
c2VNb2RlIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1
Y3Rpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTQ1LDcgKzQ1LDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKIAogY2xhc3MgU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7Ci0gICAg
c3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCiBwdWJsaWM6CiAgICAgU3RyZW5ndGhSZWR1Y3Rp
b25QaGFzZShHcmFwaCYgZ3JhcGgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaAkocmV2aXNpb24gMjQ5OTU5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEx
LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNTEsMTAgKzI1MSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2
YWxpZGF0ZVJlZmVyZW5jZXMoY29uc3QgVHJhY2tlZFJlZmVyZW5jZXMmKSBjb25zdDsKICAgICAK
IHByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnRwdHJfdCBjbG9iYmVyZWRGbGFnID0gUmVn
aXN0ZXJlZFN0cnVjdHVyZVNldDo6cmVzZXJ2ZWRGbGFnOwotICAgIHN0YXRpYyBjb25zdCB1aW50
cHRyX3QgdG9wVmFsdWUgPSBSZWdpc3RlcmVkU3RydWN0dXJlU2V0OjpyZXNlcnZlZFZhbHVlOwot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBwb2x5bW9ycGhpc21MaW1pdCA9IDEwOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBjbG9iYmVyZWRTdXByZW1hY3lUaHJlc2hvbGQgPSAyOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IGNsb2JiZXJlZEZsYWcgPSBSZWdpc3RlcmVkU3Ry
dWN0dXJlU2V0OjpyZXNlcnZlZEZsYWc7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3Qg
dG9wVmFsdWUgPSBSZWdpc3RlcmVkU3RydWN0dXJlU2V0OjpyZXNlcnZlZFZhbHVlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgcG9seW1vcnBoaXNtTGltaXQgPSAxMDsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIGNsb2JiZXJlZFN1cHJlbWFjeVRocmVzaG9sZCA9IDI7CiAg
ICAgCiAgICAgdm9pZCBmaWx0ZXJTbG93KFNwZWN1bGF0ZWRUeXBlIHR5cGUpOwogICAgIHZvaWQg
ZmlsdGVyQ2xhc3NJbmZvU2xvdyhjb25zdCBDbGFzc0luZm8qKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVmFyYXJnc0ZvcndhcmRpbmdQaGFzZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJhcmdzRm9yd2FyZGluZ1BoYXNlLmNw
cAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJh
cmdzRm9yd2FyZGluZ1BoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQyLDcgKzQyLDcgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogbmFtZXNwYWNlIHsKIAogbmFtZXNwYWNl
IERGR1ZhcmFyZ3NGb3J3YXJkaW5nUGhhc2VJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwog
fQogCiBjbGFzcyBWYXJhcmdzRm9yd2FyZGluZ1BoYXNlIDogcHVibGljIFBoYXNlIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUV2ZW50U3Ry
ZWFtLmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdWYXJpYWJsZUV2ZW50U3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyMyw3ICsxMjMs
NyBAQCB1bnNpZ25lZCBWYXJpYWJsZUV2ZW50U3RyZWFtOjpyZWNvbnN0cnVjCiAgICAgQ29kZUJs
b2NrKiBiYXNlbGluZUNvZGVCbG9jayA9IGNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCk7CiAK
ICAgICB1bnNpZ25lZCBudW1WYXJpYWJsZXM7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGlu
dmFsaWRJbmRleCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGludmFsaWRJbmRleCA9IHN0ZDo6bnVtZXJpY19saW1p
dHM8dW5zaWduZWQ+OjptYXgoKTsKICAgICB1bnNpZ25lZCBmaXJzdFVuZGVmaW5lZCA9IGludmFs
aWRJbmRleDsKICAgICBib29sIGZpcnN0VW5kZWZpbmVkSXNBcmd1bWVudCA9IGZhbHNlOwogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dhdGNocG9pbnRDb2xsZWN0aW9uUGhh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV2F0Y2hw
b2ludENvbGxlY3Rpb25QaGFzZS5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHV2F0Y2hwb2ludENvbGxlY3Rpb25QaGFzZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC00NSw3ICs0NSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAKIGNsYXNzIFdhdGNocG9pbnRDb2xsZWN0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewotICAg
IHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAogcHVibGljOgogICAgIFdhdGNocG9pbnRDb2xs
ZWN0aW9uUGhhc2UoR3JhcGgmIGdyYXBoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rp
c2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2RlLmgJKHJldmlzaW9uIDI0OTk1
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29k
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE5NSw3ICsxOTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIGJ1ZmZlclByaW50ZigibHNsICMldSIsIDE2ICogYW1vdW50KTsKICAgICB9CiAKLSAgICBz
dGF0aWMgY29uc3QgaW50IGJ1ZmZlclNpemUgPSA4MTsKKyAgICBzdGF0aWMgY29uc3RleHByIGlu
dCBidWZmZXJTaXplID0gODE7CiAKICAgICBjaGFyIG1fZm9ybWF0QnVmZmVyW2J1ZmZlclNpemVd
OwogICAgIHVpbnQzMl90KiBtX2N1cnJlbnRQQzsKQEAgLTIyNyw4ICsyMjcsOCBAQCBwdWJsaWM6
CiAKIGNsYXNzIEE2NERPcGNvZGVBZGRTdWJ0cmFjdEltbWVkaWF0ZSA6IHB1YmxpYyBBNjRET3Bj
b2RlQWRkU3VidHJhY3QgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNr
ID0gMHgxZjAwMDAwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MTEw
MDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHgxZjAwMDAwMDsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDExMDAwMDAwOwogCiAg
ICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUFkZFN1YnRyYWN0SW1tZWRpYXRlLCB0
aGlzT2JqKTsKIApAQCAtMjQxLDggKzI0MSw4IEBAIHB1YmxpYzoKIAogY2xhc3MgQTY0RE9wY29k
ZUFkZFN1YnRyYWN0RXh0ZW5kZWRSZWdpc3RlciA6IHB1YmxpYyBBNjRET3Bjb2RlQWRkU3VidHJh
Y3QgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHgxZmUwMDAw
MDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MGIyMDAwMDA7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHgxZmUwMDAwMDsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDBiMjAwMDAwOwogCiAgICAgREVGSU5FX1NU
QVRJQ19GT1JNQVQoQTY0RE9wY29kZUFkZFN1YnRyYWN0RXh0ZW5kZWRSZWdpc3RlciwgdGhpc09i
aik7CiAKQEAgLTI1Myw4ICsyNTMsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEE2NERPcGNvZGVBZGRT
dWJ0cmFjdFNoaWZ0ZWRSZWdpc3RlciA6IHB1YmxpYyBBNjRET3Bjb2RlQWRkU3VidHJhY3Qgewog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHgxZjIwMDAwMDsKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MGIwMDAwMDA7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHgxZjIwMDAwMDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDBiMDAwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19G
T1JNQVQoQTY0RE9wY29kZUFkZFN1YnRyYWN0U2hpZnRlZFJlZ2lzdGVyLCB0aGlzT2JqKTsKIApA
QCAtMjc0LDggKzI3NCw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0
IHNfZXh0cmFjdE9wTmFtZXNbM107CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMy
X3QgbWFzayA9IDB4MWY4MDAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4g
PSAweDEzMDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4MWY4
MDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHgxMzAwMDAw
MDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVCaXRmaWVsZCwgdGhpc09i
aik7CiAKQEAgLTI5NCw4ICsyOTQsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEE2NERPcGNvZGVDb21w
YXJlQW5kQnJhbmNoSW1tZWRpYXRlIDogcHVibGljIEE2NERPcGNvZGUgewogcHVibGljOgotICAg
IHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHg3ZTAwMDAwMDsKLSAgICBzdGF0aWMgY29u
c3QgdWludDMyX3QgcGF0dGVybiA9IDB4MzQwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50MzJfdCBtYXNrID0gMHg3ZTAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90
IHBhdHRlcm4gPSAweDM0MDAwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9w
Y29kZUNvbXBhcmVBbmRCcmFuY2hJbW1lZGlhdGUsIHRoaXNPYmopOwogCkBAIC0zMDcsOCArMzA3
LDggQEAgcHVibGljOgogCiBjbGFzcyBBNjRET3Bjb2RlQ29uZGl0aW9uYWxCcmFuY2hJbW1lZGlh
dGUgOiBwdWJsaWMgQTY0RE9wY29kZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQz
Ml90IG1hc2sgPSAweGZmMDAwMDEwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJu
ID0gMHg1NDAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweGZm
MDAwMDEwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4NTQwMDAw
MDA7CiAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlQ29uZGl0aW9uYWxCcmFu
Y2hJbW1lZGlhdGUsIHRoaXNPYmopOwogCkBAIC0zMjMsOCArMzIzLDggQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgc19vcE5hbWVzWzRdOwogCiBwdWJsaWM6Ci0gICAg
c3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDFmZTAwMDAwOwotICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBwYXR0ZXJuID0gMHgxYTgwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVp
bnQzMl90IG1hc2sgPSAweDFmZTAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3Qg
cGF0dGVybiA9IDB4MWE4MDAwMDA7CiAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bj
b2RlQ29uZGl0aW9uYWxTZWxlY3QsIHRoaXNPYmopOwogCkBAIC0zNDQsOCArMzQ0LDggQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgc19wYWNBdXRPcE5hbWVzWzE4XTsK
ICAgICAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4NWZlMDAw
MDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDVhYzAwMDAwOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4NWZlMDAwMDA7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHg1YWMwMDAwMDsKICAgICAKICAgICBERUZJ
TkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlRGF0YVByb2Nlc3NpbmcxU291cmNlLCB0aGlzT2Jq
KTsKICAgICAKQEAgLTM2Myw4ICszNjMsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBjb25zdCBzX29wTmFtZXNbMTZdOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVp
bnQzMl90IG1hc2sgPSAweDVmZTAwMDAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0
ZXJuID0gMHgxYWMwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAw
eDVmZTAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4MWFj
MDAwMDA7CiAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlRGF0YVByb2Nlc3Np
bmcyU291cmNlLCB0aGlzT2JqKTsKIApAQCAtMzgyLDggKzM4Miw4IEBAIHByaXZhdGU6CiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNfcHNldWRvT3BOYW1lc1sxNl07CiAKIHB1YmxpYzoK
LSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4MWYwMDAwMDA7Ci0gICAgc3RhdGlj
IGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDFiMDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdWludDMyX3QgbWFzayA9IDB4MWYwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50
MzJfdCBwYXR0ZXJuID0gMHgxYjAwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2
NERPcGNvZGVEYXRhUHJvY2Vzc2luZzNTb3VyY2UsIHRoaXNPYmopOwogCkBAIC0zOTksOCArMzk5
LDggQEAgcHVibGljOgogCiBjbGFzcyBBNjRPcGNvZGVFeGNlcHRpb25HZW5lcmF0aW9uIDogcHVi
bGljIEE2NERPcGNvZGUgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNr
ID0gMHhmZjAwMDAwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4ZDQw
MDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHhmZjAwMDAwMDsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweGQ0MDAwMDAwOwogCiAg
ICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0T3Bjb2RlRXhjZXB0aW9uR2VuZXJhdGlvbiwgdGhp
c09iaik7CiAKQEAgLTQxNCw4ICs0MTQsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEE2NERPcGNvZGVF
eHRyYWN0IDogcHVibGljIEE2NERPcGNvZGUgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1
aW50MzJfdCBtYXNrID0gMHgxZjgwMDAwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0
dGVybiA9IDB4MTM4MDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0g
MHgxZjgwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDEz
ODAwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUV4dHJhY3QsIHRo
aXNPYmopOwogCkBAIC00MzksOCArNDM5LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogY29uc3Qgc19vcE5hbWVzWzE2XTsKICAgICAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3QgdWludDMyX3QgbWFzayA9IDB4NWYyMDNjMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90
IHBhdHRlcm4gPSAweDFlMjAyMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFz
ayA9IDB4NWYyMDNjMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0g
MHgxZTIwMjAwMDsKICAgICAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlRmxv
YXRpbmdQb2ludENvbXBhcmUsIHRoaXNPYmopOwogICAgIApAQCAtNDU1LDggKzQ1NSw4IEBAIHB1
YmxpYzoKIAogY2xhc3MgQTY0RE9wY29kZUZsb2F0aW5nUG9pbnRDb25kaXRpb25hbFNlbGVjdCA6
IHB1YmxpYyBBNjRET3Bjb2RlRmxvYXRpbmdQb2ludE9wcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDVmMjAwYzAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50
MzJfdCBwYXR0ZXJuID0gMHgxZTIwMGMwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90
IG1hc2sgPSAweDVmMjAwYzAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVy
biA9IDB4MWUyMDBjMDA7CiAgICAgCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29k
ZUZsb2F0aW5nUG9pbnRDb25kaXRpb25hbFNlbGVjdCwgdGhpc09iaik7CiAgICAgCkBAIC00NzIs
OCArNDcyLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgc19vcE5h
bWVzWzE2XTsKIAogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHg1
ZjIwN2MwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MWUyMDQwMDA7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHg1ZjIwN2MwMDsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDFlMjA0MDAwOwogCiAgICAgREVG
SU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUZsb2F0aW5nUG9pbnREYXRhUHJvY2Vzc2luZzFT
b3VyY2UsIHRoaXNPYmopOwogCkBAIC00ODksOCArNDg5LDggQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgY29uc3QgY2hhciogY29uc3Qgc19vcE5hbWVzWzE2XTsKIAogcHVibGljOgotICAgIHN0YXRp
YyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHg1ZjIwMDgwMDsKLSAgICBzdGF0aWMgY29uc3QgdWlu
dDMyX3QgcGF0dGVybiA9IDB4MWUyMDA4MDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJf
dCBtYXNrID0gMHg1ZjIwMDgwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRl
cm4gPSAweDFlMjAwODAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUZs
b2F0aW5nUG9pbnREYXRhUHJvY2Vzc2luZzJTb3VyY2UsIHRoaXNPYmopOwogCkBAIC01MDYsOCAr
NTA2LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgc19vcE5hbWVz
WzRdOwogICAgIAogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHg1
ZjIwMDAwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MWUwMDAwMDA7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHg1ZjIwMDAwMDsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDFlMDAwMDAwOwogICAgIAogICAg
IERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVGbG9hdGluZ0ZpeGVkUG9pbnRDb252ZXJz
aW9ucywgdGhpc09iaik7CiAgICAgCkBAIC01MjUsOCArNTI1LDggQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgY29uc3QgY2hhciogY29uc3Qgc19vcE5hbWVzWzMyXTsKICAgICAKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4NWYyMGZjMDA7Ci0gICAgc3RhdGljIGNv
bnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDFlMjAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludDMyX3QgbWFzayA9IDB4NWYyMGZjMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJf
dCBwYXR0ZXJuID0gMHgxZTIwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERP
cGNvZGVGbG9hdGluZ1BvaW50SW50ZWdlckNvbnZlcnNpb25zLCB0aGlzT2JqKTsKIApAQCAtNTUw
LDggKzU1MCw4IEBAIHB1YmxpYzoKIAogY2xhc3MgQTY0RE9wY29kZU1TUkltbWVkaWF0ZSA6IHB1
YmxpYyBBNjRET3Bjb2RlU3lzdGVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMy
X3QgbWFzayA9IDB4ZmZmOGYwMWY7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4g
PSAweGQ1MDA0MDFmOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4ZmZm
OGYwMWY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHhkNTAwNDAx
ZjsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVNU1JJbW1lZGlhdGUsIHRo
aXNPYmopOwogCkBAIC01NjAsOCArNTYwLDggQEAgcHVibGljOgogCiBjbGFzcyBBNjRET3Bjb2Rl
TVNST3JNUlNSZWdpc3RlciA6IHB1YmxpYyBBNjRET3Bjb2RlU3lzdGVtIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4ZmZkMDAwMDA7Ci0gICAgc3RhdGljIGNv
bnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweGQ1MTAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludDMyX3QgbWFzayA9IDB4ZmZkMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJf
dCBwYXR0ZXJuID0gMHhkNTEwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERP
cGNvZGVNU1JPck1SU1JlZ2lzdGVyLCB0aGlzT2JqKTsKIApAQCAtNTc2LDggKzU3Niw4IEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNfb3BOYW1lc1szMl07CiAKIHB1
YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4ZmZmZmYwMWY7Ci0gICAg
c3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweGQ1MDMyMDFmOworICAgIHN0YXRpYyBj
b25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4ZmZmZmYwMWY7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1aW50MzJfdCBwYXR0ZXJuID0gMHhkNTAzMjAxZjsKIAogICAgIERFRklORV9TVEFUSUNfRk9S
TUFUKEE2NERPcGNvZGVIaW50LCB0aGlzT2JqKTsKIApAQCAtNTkyLDggKzU5Miw4IEBAIGNsYXNz
IEE2NERPcGNvZGVTeXN0ZW1TeW5jIDogcHVibGljIEE2NEQKICAgICBzdGF0aWMgY29uc3QgY2hh
ciogY29uc3Qgc19vcHRpb25OYW1lc1sxNl07CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3Qg
dWludDMyX3QgbWFzayA9IDB4ZmZmZmYwMWY7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBh
dHRlcm4gPSAweGQ1MDMzMDFmOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9
IDB4ZmZmZmYwMWY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHhk
NTAzMzAxZjsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVTeXN0ZW1TeW5j
LCB0aGlzT2JqKTsKIApAQCAtNjI1LDggKzYyNSw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNv
bnN0IGNoYXIqIGNvbnN0IHNfb3BOYW1lc1s2NF07CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3QgdWludDMyX3QgbWFzayA9IDB4M2YwMDAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90
IHBhdHRlcm4gPSAweDA4MDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFz
ayA9IDB4M2YwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0g
MHgwODAwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVMb2FkU3Rv
cmVFeGNsdXNpdmUsIHRoaXNPYmopOwogCkBAIC02NTMsOCArNjUzLDggQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgc191bnNjYWxlZE9wTmFtZXNbMzJdOwogCiBwdWJs
aWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDNiMjAwMDAwOwotICAgIHN0
YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHgzODAwMDAwMDsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVpbnQzMl90IG1hc2sgPSAweDNiMjAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludDMyX3QgcGF0dGVybiA9IDB4MzgwMDAwMDA7CiAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1B
VChBNjRET3Bjb2RlTG9hZFN0b3JlSW1tZWRpYXRlLCB0aGlzT2JqKTsKIApAQCAtNjc0LDggKzY3
NCw4IEBAIHB1YmxpYzoKIAogY2xhc3MgQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyT2Zmc2V0
IDogcHVibGljIEE2NERPcGNvZGVMb2FkU3RvcmUgewogcHVibGljOgotICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBtYXNrID0gMHgzYjIwMGMwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qg
cGF0dGVybiA9IDB4MzgyMDA4MDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNr
ID0gMHgzYjIwMGMwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAw
eDM4MjAwODAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUxvYWRTdG9y
ZVJlZ2lzdGVyT2Zmc2V0LCB0aGlzT2JqKTsKIApAQCAtNjk2LDggKzY5Niw4IEBAIHByb3RlY3Rl
ZDoKICAgICB9CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4
ZmYyMDA0MDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweGY4MjAwNDAw
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4ZmYyMDA0MDA7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHhmODIwMDQwMDsKICAgICAKICAg
ICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlTG9hZFN0b3JlQXV0aGVudGljYXRlZCwg
dGhpc09iaik7CiAgICAgCkBAIC03MTMsOCArNzEzLDggQEAgcHVibGljOgogCiBjbGFzcyBBNjRE
T3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyIDogcHVibGljIEE2NERPcGNvZGVMb2FkU3RvcmUg
ewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHgzYTAwMDAwMDsK
LSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MjgwMDAwMDA7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHgzYTAwMDAwMDsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDI4MDAwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJ
Q19GT1JNQVQoQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciwgdGhpc09iaik7CiAKQEAg
LTcyOSw4ICs3MjksOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEE2NERPcGNvZGVMb2FkU3RvcmVVbnNp
Z25lZEltbWVkaWF0ZSA6IHB1YmxpYyBBNjRET3Bjb2RlTG9hZFN0b3JlIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4M2IwMDAwMDA7Ci0gICAgc3RhdGljIGNv
bnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDM5MDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludDMyX3QgbWFzayA9IDB4M2IwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJf
dCBwYXR0ZXJuID0gMHgzOTAwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERP
cGNvZGVMb2FkU3RvcmVVbnNpZ25lZEltbWVkaWF0ZSwgdGhpc09iaik7CiAKQEAgLTc1NSw4ICs3
NTUsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEE2NERPcGNvZGVMb2dpY2FsSW1tZWRpYXRlIDogcHVi
bGljIEE2NERPcGNvZGVMb2dpY2FsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMy
X3QgbWFzayA9IDB4MWY4MDAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4g
PSAweDEyMDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4MWY4
MDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHgxMjAwMDAw
MDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVMb2dpY2FsSW1tZWRpYXRl
LCB0aGlzT2JqKTsKIApAQCAtNzcyLDggKzc3Miw4IEBAIHB1YmxpYzoKIAogY2xhc3MgQTY0RE9w
Y29kZUxvZ2ljYWxTaGlmdGVkUmVnaXN0ZXIgOiBwdWJsaWMgQTY0RE9wY29kZUxvZ2ljYWwgewog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHgxZjAwMDAwMDsKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MGEwMDAwMDA7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHgxZjAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDBhMDAwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19G
T1JNQVQoQTY0RE9wY29kZUxvZ2ljYWxTaGlmdGVkUmVnaXN0ZXIsIHRoaXNPYmopOwogCkBAIC03
OTEsOCArNzkxLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgc19v
cE5hbWVzWzRdOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAw
eDFmODAwMDAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHgxMjgwMDAw
MDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweDFmODAwMDAwOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4MTI4MDAwMDA7CiAKICAgICBE
RUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlTW92ZVdpZGUsIHRoaXNPYmopOwogCkBAIC04
MDYsOCArODA2LDggQEAgcHVibGljOgogCiBjbGFzcyBBNjRET3Bjb2RlVGVzdEFuZEJyYW5jaElt
bWVkaWF0ZSA6IHB1YmxpYyBBNjRET3Bjb2RlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3Qg
dWludDMyX3QgbWFzayA9IDB4N2UwMDAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBh
dHRlcm4gPSAweDM2MDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9
IDB4N2UwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHgz
NjAwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVUZXN0QW5kQnJh
bmNoSW1tZWRpYXRlLCB0aGlzT2JqKTsKIApAQCAtODIwLDggKzgyMCw4IEBAIHB1YmxpYzoKIAog
Y2xhc3MgQTY0RE9wY29kZVVuY29uZGl0aW9uYWxCcmFuY2hJbW1lZGlhdGUgOiBwdWJsaWMgQTY0
RE9wY29kZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDdj
MDAwMDAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHgxNDAwMDAwMDsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweDdjMDAwMDAwOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4MTQwMDAwMDA7CiAKICAgICBERUZJ
TkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlVW5jb25kaXRpb25hbEJyYW5jaEltbWVkaWF0ZSwg
dGhpc09iaik7CiAKQEAgLTgzNyw4ICs4MzcsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCBzX0F1dGhPcE5hbWVzWzIwXTsKIAogcHVibGljOgotICAgIHN0YXRpYyBj
b25zdCB1aW50MzJfdCBtYXNrID0gMHhmZTFmMDAwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMy
X3QgcGF0dGVybiA9IDB4ZDYxZjAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBt
YXNrID0gMHhmZTFmMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4g
PSAweGQ2MWYwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZVVuY29u
ZGl0aW9uYWxCcmFuY2hSZWdpc3RlciwgdGhpc09iaik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG9jYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvY2F0aW9uLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG9jYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE5MSw3ICsx
OTEsNyBAQCBwcml2YXRlOgogc3RydWN0IExvY2F0aW9uSGFzaCB7CiAgICAgc3RhdGljIHVuc2ln
bmVkIGhhc2goY29uc3QgTG9jYXRpb24mIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAg
IHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IExvY2F0aW9uJiBhLCBjb25zdCBMb2NhdGlvbiYgYikg
eyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9D
b21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6RlRMCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5MjksNyArMjkyOSw3IEBAIHBy
aXZhdGU6CiAKICAgICAgICAgLy8gQ29udmVydCBgKDUzYml0IGRvdWJsZSBpbnRlZ2VyIHZhbHVl
KSAvICgxIDw8IDUzKWAgdG8gYCg1M2JpdCBkb3VibGUgaW50ZWdlciB2YWx1ZSkgKiAoMS4wIC8g
KDEgPDwgNTMpKWAuCiAgICAgICAgIC8vIEluIGxhdHRlciBjYXNlLCBgMS4wIC8gKDEgPDwgNTMp
YCB3aWxsIGJlY29tZSBhIGRvdWJsZSB2YWx1ZSByZXByZXNlbnRlZCBhcyAobWFudGlzc2EgPSAw
ICYgZXhwID0gOTcwLCBpdCBtZWFucyAxZS0oMioqNTQpKS4KLSAgICAgICAgc3RhdGljIGNvbnN0
IGRvdWJsZSBzY2FsZSA9IDEuMCAvICgxVUxMIDw8IDUzKTsKKyAgICAgICAgc3RhdGljIGNvbnN0
ZXhwciBkb3VibGUgc2NhbGUgPSAxLjAgLyAoMVVMTCA8PCA1Myk7CiAKICAgICAgICAgLy8gTXVs
dGlwbHlpbmcgMWUtKDIqKjU0KSB3aXRoIHRoZSBkb3VibGUgaW50ZWdlciBkb2VzIG5vdCBjaGFu
Z2UgYW55dGhpbmcgb2YgdGhlIG1hbnRpc3NhIHBhcnQgb2YgdGhlIGRvdWJsZSBpbnRlZ2VyLgog
ICAgICAgICAvLyBJdCBqdXN0IHJlZHVjZXMgdGhlIGV4cCBwYXJ0IG9mIHRoZSBnaXZlbiA1M2Jp
dCBkb3VibGUgaW50ZWdlci4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xv
d1BhdGhDYWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFNsb3dQYXRoQ2FsbC5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcgKzM3
LDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIAogLy8gVGhpcyBjb2RlIHJl
bGllcyBvbiB1cyBiZWluZyA2NC1iaXQuIEZUTCBpcyBjdXJyZW50bHkgYWx3YXlzIDY0LWJpdC4K
LXN0YXRpYyBjb25zdCBzaXplX3Qgd29yZFNpemUgPSA4Oworc3RhdGljIGNvbnN0ZXhwciBzaXpl
X3Qgd29yZFNpemUgPSA4OwogCiBTbG93UGF0aENhbGxDb250ZXh0OjpTbG93UGF0aENhbGxDb250
ZXh0KAogICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMsIENDYWxsSGVscGVycyYgaml0LCB1
bnNpZ25lZCBudW1BcmdzLCBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbEtleS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsS2V5LmgJKHJldmlzaW9uIDI0OTk1
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsS2V5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0xMTAsNyArMTEwLDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBTbG93UGF0
aENhbGxLZXlIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBTbG93UGF0aENh
bGxLZXkmIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFs
KGNvbnN0IFNsb3dQYXRoQ2FsbEtleSYgYSwgY29uc3QgU2xvd1BhdGhDYWxsS2V5JiBiKSB7IHJl
dHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0
eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkZUTApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ2VsbENvbnRhaW5lci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NlbGxDb250YWluZXIuaAko
cmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ2VsbENvbnRh
aW5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKICAgICBXZWFr
U2V0JiB3ZWFrU2V0KCkgY29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdCB1
aW50cHRyX3QgaXNMYXJnZUFsbG9jYXRpb25CaXQgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludHB0cl90IGlzTGFyZ2VBbGxvY2F0aW9uQml0ID0gMTsKICAgICB1aW50cHRyX3QgbV9lbmNv
ZGVkUG9pbnRlcjsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NlbGxT
dGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NlbGxTdGF0
ZS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9DZWxs
U3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ1LDggKzQ1LDggQEAgZW51bSBjbGFzcyBDZWxs
U3RhdGUgOiB1aW50OF90IHsKICAgICBQb3NzaWJseUdyZXkgPSAyCiB9OwogCi1zdGF0aWMgY29u
c3QgdW5zaWduZWQgYmxhY2tUaHJlc2hvbGQgPSAwOyAvLyB4IDw9IGJsYWNrVGhyZXNob2xkIG1l
YW5zIHggaXMgUG9zc2libHlPbGRPckJsYWNrLgotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRhdXRv
bG9naWNhbFRocmVzaG9sZCA9IDEwMDsgLy8geCA8PSB0YXV0b2xvZ2ljYWxUaHJlc2hvbGQgaXMg
YWx3YXlzIHRydWUuCitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJsYWNrVGhyZXNob2xkID0g
MDsgLy8geCA8PSBibGFja1RocmVzaG9sZCBtZWFucyB4IGlzIFBvc3NpYmx5T2xkT3JCbGFjay4K
K3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgdGF1dG9sb2dpY2FsVGhyZXNob2xkID0gMTAwOyAv
LyB4IDw9IHRhdXRvbG9naWNhbFRocmVzaG9sZCBpcyBhbHdheXMgdHJ1ZS4KIAogaW5saW5lIGJv
b2wgaXNXaXRoaW5UaHJlc2hvbGQoQ2VsbFN0YXRlIGNlbGxTdGF0ZSwgdW5zaWduZWQgdGhyZXNo
b2xkKQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9v
dHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRp
dmVSb290cy5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9Db25zZXJ2YXRpdmVSb290cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ1LDggKzQ1LDggQEAg
cHVibGljOgogICAgIEhlYXBDZWxsKiogcm9vdHMoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBz
dGF0aWMgY29uc3Qgc2l6ZV90IGlubGluZUNhcGFjaXR5ID0gMTI4OwotICAgIHN0YXRpYyBjb25z
dCBzaXplX3Qgbm9uSW5saW5lQ2FwYWNpdHkgPSA4MTkyIC8gc2l6ZW9mKEhlYXBDZWxsKik7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgaW5saW5lQ2FwYWNpdHkgPSAxMjg7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBzaXplX3Qgbm9uSW5saW5lQ2FwYWNpdHkgPSA4MTkyIC8gc2l6ZW9mKEhl
YXBDZWxsKik7CiAgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFya0hvb2s+CiAgICAgdm9p
ZCBnZW5lcmljQWRkUG9pbnRlcih2b2lkKiwgSGVhcFZlcnNpb24gbWFya2luZ1ZlcnNpb24sIEhl
YXBWZXJzaW9uIG5ld2x5QWxsb2NhdGVkVmVyc2lvbiwgVGlueUJsb29tRmlsdGVyLCBNYXJrSG9v
ayYpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NTZWdtZW50ZWRBcnJheS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDU2VnbWVudGVkQXJy
YXkuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NT
ZWdtZW50ZWRBcnJheS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8VCo+KHRoaXMgKyAxKTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgY29uc3Qgc2l6ZV90IGJsb2NrU2l6ZSA9IDQgKiBLQjsKKyAgICBzdGF0aWMgY29u
c3RleHByIHNpemVfdCBibG9ja1NpemUgPSA0ICogS0I7CiAKICAgICBHQ0FycmF5U2VnbWVudCog
bV9wcmV2OwogICAgIEdDQXJyYXlTZWdtZW50KiBtX25leHQ7CkBAIC05MCw3ICs5MCw3IEBAIHB1
YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIHRlbXBsYXRlIDxzaXplX3Qgc2l6ZT4gc3RydWN0IENh
cGFjaXR5RnJvbVNpemUgewotICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHZhbHVlID0gKHNp
emUgLSBzaXplb2YoR0NBcnJheVNlZ21lbnQ8VD4pKSAvIHNpemVvZihUKTsKKyAgICAgICAgc3Rh
dGljIGNvbnN0ZXhwciBzaXplX3QgdmFsdWUgPSAoc2l6ZSAtIHNpemVvZihHQ0FycmF5U2VnbWVu
dDxUPikpIC8gc2l6ZW9mKFQpOwogICAgIH07CiAKICAgICB2b2lkIGV4cGFuZCgpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlQmxvY2suaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVCbG9jay5oCShyZXZpc2lvbiAyNDk5NTkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVCbG9jay5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSGFuZGxl
QmxvY2sqKTsKICAgICBzdGF0aWMgSGFuZGxlQmxvY2sqIGJsb2NrRm9yKEhhbmRsZU5vZGUqKTsK
IAotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYmxvY2tTaXplID0gNCAqIEtCOworICAgIHN0YXRp
YyBjb25zdGV4cHIgc2l6ZV90IGJsb2NrU2l6ZSA9IDQgKiBLQjsKIAogICAgIEhhbmRsZVNldCog
aGFuZGxlU2V0KCk7CiAKQEAgLTUzLDcgKzUzLDcgQEAgcHJpdmF0ZToKICAgICBjaGFyKiBwYXls
b2FkKCk7CiAgICAgY2hhciogcGF5bG9hZEVuZCgpOwogCi0gICAgc3RhdGljIGNvbnN0IHNpemVf
dCBzX2Jsb2NrTWFzayA9IH4oYmxvY2tTaXplIC0gMSk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBz
aXplX3Qgc19ibG9ja01hc2sgPSB+KGJsb2NrU2l6ZSAtIDEpOwogCiAgICAgSGFuZGxlQmxvY2sq
IG1fcHJldjsKICAgICBIYW5kbGVCbG9jayogbV9uZXh0OwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcC5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjU0LDcgKzIyNTQsNyBAQCB2b2lk
IEhlYXA6Om5vdGlmeUluY3JlbWVudGFsU3dlZXBlcigpCiAKIHZvaWQgSGVhcDo6dXBkYXRlQWxs
b2NhdGlvbkxpbWl0cygpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCiAgICAg
aWYgKHZlcmJvc2UpIHsKICAgICAgICAgZGF0YUxvZygiXG4iKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDcgKzEyMSw3IEBAIHB1YmxpYzoK
ICAgICAvLyBkZWFkbGluZSB3aGVuIGNhbGxpbmcgSGVhcDo6aXNQYWdlZE91dC4gRGVjcmVhc2lu
ZyBpdCB3aWxsIGNhdXNlIHVzIHRvIGRldGVjdCAKICAgICAvLyBvdmVyc3RlcHBpbmcgb3VyIGRl
YWRsaW5lIG1vcmUgcXVpY2tseSwgd2hpbGUgaW5jcmVhc2luZyBpdCB3aWxsIGNhdXNlIAogICAg
IC8vIG91ciBzY2FuIHRvIHJ1biBmYXN0ZXIuIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBz
X3RpbWVDaGVja1Jlc29sdXRpb24gPSAxNjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IHNfdGltZUNoZWNrUmVzb2x1dGlvbiA9IDE2OwogCiAgICAgYm9vbCBpc01hcmtlZChjb25zdCB2
b2lkKik7CiAgICAgc3RhdGljIGJvb2wgdGVzdEFuZFNldE1hcmtlZChIZWFwVmVyc2lvbiwgY29u
c3Qgdm9pZCopOwpAQCAtNDI4LDcgKzQyOCw3IEBAIHByaXZhdGU6CiAgICAgY2xhc3MgSGVhcFRo
cmVhZDsKICAgICBmcmllbmQgY2xhc3MgSGVhcFRocmVhZDsKIAotICAgIHN0YXRpYyBjb25zdCBz
aXplX3QgbWluRXh0cmFNZW1vcnkgPSAyNTY7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qg
bWluRXh0cmFNZW1vcnkgPSAyNTY7CiAgICAgCiAgICAgY2xhc3MgRmluYWxpemVyT3duZXIgOiBw
dWJsaWMgV2Vha0hhbmRsZU93bmVyIHsKICAgICAgICAgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5r
bm93bj4sIHZvaWQqIGNvbnRleHQpIG92ZXJyaWRlOwpAQCAtNjc4LDcgKzY3OCw3IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV9udW1iZXJPZldhaXRpbmdQYXJhbGxlbE1hcmtlcnMgeyAwIH07
CiAKICAgICBDb25jdXJyZW50UHRySGFzaFNldCBtX29wYXF1ZVJvb3RzOwotICAgIHN0YXRpYyBj
b25zdCBzaXplX3Qgc19ibG9ja0ZyYWdtZW50TGVuZ3RoID0gMzI7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBzaXplX3Qgc19ibG9ja0ZyYWdtZW50TGVuZ3RoID0gMzI7CiAKICAgICBQYXJhbGxlbEhl
bHBlckNsaWVudCBtX2hlbHBlckNsaWVudDsKICAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkKFNs
b3RWaXNpdG9yJik+PiBtX2JvbnVzVmlzaXRvclRhc2s7CkBAIC02OTAsMTIgKzY5MCwxMiBAQCBw
cml2YXRlOgogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxNdXRhdG9yU2NoZWR1bGVyPiBtX3Nj
aGVkdWxlcjsKICAgICAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbXV0YXRvckhhc0Nvbm5C
aXQgPSAxdSA8PCAwdTsgLy8gTXVzdCBhbHNvIGJlIHByb3RlY3RlZCBieSB0aHJlYWRMb2NrLgot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzdG9wcGVkQml0ID0gMXUgPDwgMXU7IC8vIE9ubHkg
c2V0IHdoZW4gIWhhc0FjY2Vzc0JpdAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBoYXNBY2Nl
c3NCaXQgPSAxdSA8PCAydTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZ2NEaWRKSVRCaXQg
PSAxdSA8PCAzdTsgLy8gU2V0IHdoZW4gdGhlIEdDIGRpZCBzb21lIEpJVGluZywgc28gb24gcmVz
dW1lIHdlIG5lZWQgdG8gY3B1aWQuCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG5lZWRGaW5h
bGl6ZUJpdCA9IDF1IDw8IDR1OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtdXRhdG9yV2Fp
dGluZ0JpdCA9IDF1IDw8IDV1OyAvLyBBbGxvd3MgdGhlIG11dGF0b3IgdG8gdXNlIHRoaXMgYXMg
YSBjb25kaXRpb24gdmFyaWFibGUuCisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtdXRh
dG9ySGFzQ29ubkJpdCA9IDF1IDw8IDB1OyAvLyBNdXN0IGFsc28gYmUgcHJvdGVjdGVkIGJ5IHRo
cmVhZExvY2suCisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzdG9wcGVkQml0ID0gMXUg
PDwgMXU7IC8vIE9ubHkgc2V0IHdoZW4gIWhhc0FjY2Vzc0JpdAorICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgaGFzQWNjZXNzQml0ID0gMXUgPDwgMnU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBnY0RpZEpJVEJpdCA9IDF1IDw8IDN1OyAvLyBTZXQgd2hlbiB0aGUgR0MgZGlk
IHNvbWUgSklUaW5nLCBzbyBvbiByZXN1bWUgd2UgbmVlZCB0byBjcHVpZC4KKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIG5lZWRGaW5hbGl6ZUJpdCA9IDF1IDw8IDR1OworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgbXV0YXRvcldhaXRpbmdCaXQgPSAxdSA8PCA1dTsgLy8gQWxs
b3dzIHRoZSBtdXRhdG9yIHRvIHVzZSB0aGlzIGFzIGEgY29uZGl0aW9uIHZhcmlhYmxlLgogICAg
IEF0b21pYzx1bnNpZ25lZD4gbV93b3JsZFN0YXRlOwogICAgIGJvb2wgbV93b3JsZElzU3RvcHBl
ZCB7IGZhbHNlIH07CiAgICAgTG9jayBtX3Zpc2l0UmFjZUxvY2s7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3QuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDks
NyArNDksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIEhlYXBTbmFw
c2hvdEJ1aWxkZXI7Ci0gICAgc3RhdGljIGNvbnN0IGludHB0cl90IENlbGxUb1N3ZWVwVGFnID0g
MTsKKyAgICBzdGF0aWMgY29uc3RleHByIGludHB0cl90IENlbGxUb1N3ZWVwVGFnID0gMTsKIAog
ICAgIFZlY3RvcjxIZWFwU25hcHNob3ROb2RlPiBtX25vZGVzOwogICAgIFRpbnlCbG9vbUZpbHRl
ciBtX2ZpbHRlcjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBVdGlsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFV0aWwuaAkocmV2
aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFV0aWwuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYt
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBI
YXNoU2V0PE1hcmtlZEJsb2NrKj4mIHNldCA9IGhlYXAub2JqZWN0U3BhY2UoKS5ibG9ja3MoKS5z
ZXQoKTsKICAgICAgICAgCiAgICAgICAgIEFTU0VSVChoZWFwLm9iamVjdFNwYWNlKCkuaXNNYXJr
aW5nKCkpOwotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc01hcmtpbmcgPSB0cnVlOworICAg
ICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNNYXJraW5nID0gdHJ1ZTsKICAgICAgICAgCiAg
ICAgICAgIGNoYXIqIHBvaW50ZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4ocGFzc2VkUG9pbnRlcik7
CiAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxT
d2VlcGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNy
ZW1lbnRhbFN3ZWVwZXIuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQs
OSArMzQsOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIGNvbnN0IFNlY29uZHMgc3dl
ZXBUaW1lU2xpY2UgPSAxMF9tczsKLXN0YXRpYyBjb25zdCBkb3VibGUgc3dlZXBUaW1lVG90YWwg
PSAuMTA7Ci1zdGF0aWMgY29uc3QgZG91YmxlIHN3ZWVwVGltZU11bHRpcGxpZXIgPSAxLjAgLyBz
d2VlcFRpbWVUb3RhbDsKK3N0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBzd2VlcFRpbWVTbGljZSA9
IDEwX21zOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgc3dlZXBUaW1lVG90YWwgPSAuMTA7Citz
dGF0aWMgY29uc3RleHByIGRvdWJsZSBzd2VlcFRpbWVNdWx0aXBsaWVyID0gMS4wIC8gc3dlZXBU
aW1lVG90YWw7CiAKIHZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpzY2hlZHVsZVRpbWVyKCkKIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0xhcmdlQWxsb2NhdGlvbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0xhcmdlQWxsb2NhdGlvbi5oCShy
ZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9MYXJnZUFsbG9j
YXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTQ1LDggKzE0NSw4IEBAIHB1YmxpYzoKICAgICAK
ICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICAKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgYWxpZ25tZW50ID0gTWFya2VkQmxvY2s6OmF0b21TaXplOwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBoYWxmQWxpZ25tZW50ID0gYWxpZ25tZW50IC8gMjsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIGFsaWdubWVudCA9IE1hcmtlZEJsb2NrOjphdG9tU2l6ZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGhhbGZBbGlnbm1lbnQgPSBhbGlnbm1lbnQg
LyAyOwogCiBwcml2YXRlOgogICAgIExhcmdlQWxsb2NhdGlvbihIZWFwJiwgc2l6ZV90LCBTdWJz
cGFjZSosIHVuc2lnbmVkIGluZGV4SW5TcGFjZSwgYm9vbCBhZGp1c3RlZEFsaWdubWVudCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCShyZXZpc2lv
biAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZl
cmJvc2UgPSBmYWxzZTsKIAogY29uc3Qgc2l6ZV90IE1hcmtlZEJsb2NrOjpibG9ja1NpemU7CiAK
LXN0YXRpYyBjb25zdCBib29sIGNvbXB1dGVCYWxhbmNlID0gZmFsc2U7CitzdGF0aWMgY29uc3Rl
eHByIGJvb2wgY29tcHV0ZUJhbGFuY2UgPSBmYWxzZTsKIHN0YXRpYyBzaXplX3QgYmFsYW5jZTsK
IAogTWFya2VkQmxvY2s6OkhhbmRsZSogTWFya2VkQmxvY2s6OnRyeUNyZWF0ZShIZWFwJiBoZWFw
LCBBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKiBhbGlnbmVkTWVtb3J5QWxsb2NhdG9yKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3Ryb25nLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvU3Ryb25nLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0cm9uZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsNyAr
MTQ2LDcgQEAgdGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIHZvaWQgc3dhcChTdHJvbgogbmFtZXNw
YWNlIFdURiB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBWZWN0b3JUcmFpdHM8SlND
OjpTdHJvbmc8VD4+IDogU2ltcGxlQ2xhc3NWZWN0b3JUcmFpdHMgewotICAgIHN0YXRpYyBjb25z
dCBib29sIGNhbkNvbXBhcmVXaXRoTWVtY21wID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIGNhbkNvbXBhcmVXaXRoTWVtY21wID0gZmFsc2U7CiB9OwogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBQPiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OlN0cm9uZzxQPj4gOiBTaW1wbGVDbGFzc0hh
c2hUcmFpdHM8SlNDOjpTdHJvbmc8UD4+IHsgfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL1Zpc2l0UmFjZUtleS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL1Zpc2l0UmFjZUtleS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9WaXNpdFJhY2VLZXkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04OCw3ICs4OCw3IEBA
IHByaXZhdGU6CiBzdHJ1Y3QgVmlzaXRSYWNlS2V5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVk
IGhhc2goY29uc3QgVmlzaXRSYWNlS2V5JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAg
ICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBWaXNpdFJhY2VLZXkmIGEsIGNvbnN0IFZpc2l0UmFj
ZUtleSYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRv
Q29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrLmgJKHJldmlzaW9uIDI0OTk1
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTIsIDIwMTMsIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC05Nyw3ICs5Nyw3IEBAIHByaXZhdGU6CiBuYW1lc3BhY2UgV1RGIHsK
IAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFZlY3RvclRyYWl0czxKU0M6OldlYWs8VD4+
IDogU2ltcGxlQ2xhc3NWZWN0b3JUcmFpdHMgewotICAgIHN0YXRpYyBjb25zdCBib29sIGNhbkNv
bXBhcmVXaXRoTWVtY21wID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbkNv
bXBhcmVXaXRoTWVtY21wID0gZmFsc2U7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgSGFzaFRyYWl0czxKU0M6OldlYWs8VD4+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6
V2VhazxUPj4gewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmgJKHJl
dmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
Mi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBTbG90VmlzaXRvcjsKIGNs
YXNzIFdlYWtCbG9jayA6IHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxXZWFrQmxvY2s+IHsK
IHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3MgV1RGOjpEb3VibHlMaW5rZWRMaXN0Tm9kZTxXZWFr
QmxvY2s+OwotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYmxvY2tTaXplID0gMjU2OyAvLyAxLzE2
IG9mIE1hcmtlZEJsb2NrIHNpemUKKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBibG9ja1Np
emUgPSAyNTY7IC8vIDEvMTYgb2YgTWFya2VkQmxvY2sgc2l6ZQogCiAgICAgc3RydWN0IEZyZWVD
ZWxsIHsKICAgICAgICAgRnJlZUNlbGwqIG5leHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5oCShyZXZpc2lv
biAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRT
Y3JpcHRIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBJbmplY3RlZFNj
cmlwdEhvc3Q7CiBjbGFzcyBKU0luamVjdGVkU2NyaXB0SG9zdCBmaW5hbCA6IHB1YmxpYyBKU0M6
OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQzo6SlNEZXN0
cnVjdGlibGVPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBERUNMQVJF
X0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmgJKHJldmlzaW9uIDI0
OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlw
dEhvc3RQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBJ
bnNwZWN0b3IgewogY2xhc3MgSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUgZmluYWwgOiBw
dWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQzo6
SlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3Q7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Q7
CiAKICAgICBERUNMQVJFX0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWUuaAkocmV2aXNpb24gMjQ5
OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxs
RnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE0LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3Ig
ewogY2xhc3MgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lIGZpbmFsIDogcHVibGljIEpTQzo6SlNEZXN0
cnVjdGlibGVPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNDOjpKU0Rlc3RydWN0aWJs
ZU9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIERFQ0xBUkVfSU5GTzsK
IApAQCAtNzEsMTMgKzcxLDEzIEBAIHB1YmxpYzoKICAgICBKU0M6OkpTVmFsdWUgaXNUYWlsRGVs
ZXRlZChKU0M6OkV4ZWNTdGF0ZSopIGNvbnN0OwogCiAgICAgLy8gQ29uc3RhbnRzLgotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBHTE9CQUxfU0NPUEUgPSAwOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBzaG9ydCBXSVRIX1NDT1BFID0gMTsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgc2hvcnQgQ0xPU1VSRV9TQ09QRSA9IDI7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IHNob3J0IENBVENIX1NDT1BFID0gMzsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQg
RlVOQ1RJT05fTkFNRV9TQ09QRSA9IDQ7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0
IEdMT0JBTF9MRVhJQ0FMX0VOVklST05NRU5UX1NDT1BFID0gNTsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgc2hvcnQgTkVTVEVEX0xFWElDQUxfU0NPUEUgPSA2OworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgc2hvcnQgR0xPQkFMX1NDT1BFID0gMDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIHNob3J0IFdJVEhfU0NPUEUgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgc2hvcnQgQ0xPU1VSRV9TQ09QRSA9IDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBzaG9ydCBDQVRDSF9TQ09QRSA9IDM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBzaG9ydCBGVU5DVElPTl9OQU1FX1NDT1BFID0gNDsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIHNob3J0IEdMT0JBTF9MRVhJQ0FMX0VOVklST05NRU5UX1NDT1BFID0gNTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNob3J0IE5FU1RFRF9MRVhJQ0FMX1NDT1BFID0g
NjsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWVQ
cm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3Rv
dHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7
CiBjbGFzcyBKU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlND
OjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQzo6SlNOb25GaW5h
bE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Q7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Q7CiAKICAgICBE
RUNMQVJFX0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAkocmV2
aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFj
ZSBJbnNwZWN0b3IgewogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4aW11bUNvbnNvbGVNZXNz
YWdlcyA9IDEwMDsKLXN0YXRpYyBjb25zdCBpbnQgZXhwaXJlQ29uc29sZU1lc3NhZ2VzU3RlcCA9
IDEwOworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhpbXVtQ29uc29sZU1lc3NhZ2VzID0g
MTAwOworc3RhdGljIGNvbnN0ZXhwciBpbnQgZXhwaXJlQ29uc29sZU1lc3NhZ2VzU3RlcCA9IDEw
OwogCiBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6Okluc3BlY3RvckNvbnNvbGVBZ2VudChBZ2VudENv
bnRleHQmIGNvbnRleHQpCiAgICAgOiBJbnNwZWN0b3JBZ2VudEJhc2UoIkNvbnNvbGUiX3MpCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50
aW1lQWdlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVB
Z2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CkBAIC0yODMsNyArMjgzLDcgQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6
OnJlbGVhc2VPYmplYwogCiB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UnVudGltZVR5
cGVzRm9yVmFyaWFibGVzQXRPZmZzZXRzKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3Qg
SlNPTjo6QXJyYXkmIGxvY2F0aW9ucywgUmVmUHRyPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OlJ1
bnRpbWU6OlR5cGVEZXNjcmlwdGlvbj4+JiB0eXBlRGVzY3JpcHRpb25zKQogewotICAgIHN0YXRp
YyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
dmVyYm9zZSA9IGZhbHNlOwogCiAgICAgdHlwZURlc2NyaXB0aW9ucyA9IEpTT046OkFycmF5T2Y8
UHJvdG9jb2w6OlJ1bnRpbWU6OlR5cGVEZXNjcmlwdGlvbj46OmNyZWF0ZSgpOwogICAgIGlmICgh
bV92bS50eXBlUHJvZmlsZXIoKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX3Byb3RvY29sX3R5cGVzX2hlYWRlci5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5CShyZXZpc2lvbiAy
NDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdl
bi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5CSh3b3JraW5nIGNvcHkpCkBA
IC0xMDIsNyArMTAyLDcgQEAgY2xhc3MgQ3BwUHJvdG9jb2xUeXBlc0hlYWRlckdlbmVyYXRvcihD
cAogICAgICAgICAgICAgZG9tYWluX2xpbmVzLmFwcGVuZCgnbmFtZXNwYWNlICVzIHsnICUgZG9t
YWluLmRvbWFpbl9uYW1lKQogCiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHZlcnNpb24sIGlu
dCk6Ci0gICAgICAgICAgICAgICAgZG9tYWluX2xpbmVzLmFwcGVuZCgnc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFZFUlNJT04gPSAlczsnICUgdmVyc2lvbikKKyAgICAgICAgICAgICAgICBkb21haW5f
bGluZXMuYXBwZW5kKCdzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFZFUlNJT04gPSAlczsnICUg
dmVyc2lvbikKIAogICAgICAgICAgICAgZG9tYWluX2xpbmVzLmFwcGVuZCgnfSAvLyAlcycgJSBk
b21haW4uZG9tYWluX25hbWUpCiAgICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi53cmFw
X3dpdGhfZ3VhcmRfZm9yX2RvbWFpbihkb21haW4sICdcbicuam9pbihkb21haW5fbGluZXMpKSkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRl
ci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTY4LDcgKzE2OCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIH0KIAogICAgIHVuc2lnbmVkIHNpemVPZlZhcmFyZ3MoQ2FsbEZyYW1l
KiBleGVjLCBKU1ZhbHVlIGFyZ3VtZW50cywgdWludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQpOwot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhBcmd1bWVudHMgPSAweDEwMDAwOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4QXJndW1lbnRzID0gMHgxMDAwMDsKICAgICB1bnNp
Z25lZCBzaXplRnJhbWVGb3JWYXJhcmdzKENhbGxGcmFtZSogZXhlYywgVk0mLCBKU1ZhbHVlIGFy
Z3VtZW50cywgdW5zaWduZWQgbnVtVXNlZFN0YWNrU2xvdHMsIHVpbnQzMl90IGZpcnN0VmFyQXJn
T2Zmc2V0KTsKICAgICB1bnNpZ25lZCBzaXplRnJhbWVGb3JGb3J3YXJkQXJndW1lbnRzKENhbGxG
cmFtZSogZXhlYywgVk0mLCB1bnNpZ25lZCBudW1Vc2VkU3RhY2tTbG90cyk7CiAgICAgdm9pZCBs
b2FkVmFyYXJncyhDYWxsRnJhbWUqIGV4ZWNDYWxsZXIsIFZpcnR1YWxSZWdpc3RlciBmaXJzdEVs
ZW1lbnREZXN0LCBKU1ZhbHVlIHNvdXJjZSwgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCBsZW5n
dGgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1NoYWRvd0NoaWNr
ZW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9T
aGFkb3dDaGlja2VuLmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL1NoYWRvd0NoaWNrZW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcgKzM0
LDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiBuYW1lc3BhY2UgU2hhZG93Q2hpY2tlbkludGVybmFs
IHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIg
Ym9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIHZvaWQgU2hhZG93Q2hpY2tlbjo6UGFja2V0Ojpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0JpbmFyeVN3aXRjaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9CaW5hcnlTd2l0Y2guY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0JpbmFyeVN3aXRjaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0
LDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiBuYW1lc3BhY2UgQmluYXJ5U3dpdGNoSW50ZXJuYWwg
ewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBi
b29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGdsb2JhbENvdW50ZXI7
IC8vIFdlIHVzZSBhIGRpZmZlcmVudCBzZWVkIGV2ZXJ5IHRpbWUgd2UgYXJlIGludm9rZWQuCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZmbGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlci5oCShy
ZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNo
dWZmbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg1LDcgKzE4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHByZXBhcmVGb3JTbG93UGF0aCgpOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdCBib29s
IHZlcmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZh
bHNlOwogCiAgICAgQ0NhbGxIZWxwZXJzJiBtX2ppdDsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgJKHJldmlzaW9uIDI0OTk1OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMg
Y29uc3QgdW5zaWduZWQgaml0QWxsb2NhdGlvbkdyYW51bGUgPSAzMjsKK3N0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgaml0QWxsb2NhdGlvbkdyYW51bGUgPSAzMjsKIAogdHlwZWRlZiBXVEY6Ok1l
dGFBbGxvY2F0b3JIYW5kbGUgRXhlY3V0YWJsZU1lbW9yeUhhbmRsZTsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9GUFJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9GUFJJbmZvLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvRlBSSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsMzAgKzQwLDMw
IEBAIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIEludmFsaWRGUFJSZWcgeyAKIGNsYXNzIEZQUklu
Zm8gewogcHVibGljOgogICAgIHR5cGVkZWYgRlBSUmVnIFJlZ2lzdGVyVHlwZTsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSA2OwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gaXM2NEJpdCgpID8gOCA6IDA7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDY7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0g
aXM2NEJpdCgpID8gOCA6IDA7CiAKICAgICAvLyBUZW1wb3JhcnkgcmVnaXN0ZXJzLgotICAgIHN0
YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUMCA9IFg4NlJlZ2lzdGVyczo6eG1tMDsKLSAgICBzdGF0
aWMgY29uc3QgRlBSUmVnIGZwUmVnVDEgPSBYODZSZWdpc3RlcnM6OnhtbTE7Ci0gICAgc3RhdGlj
IGNvbnN0IEZQUlJlZyBmcFJlZ1QyID0gWDg2UmVnaXN0ZXJzOjp4bW0yOwotICAgIHN0YXRpYyBj
b25zdCBGUFJSZWcgZnBSZWdUMyA9IFg4NlJlZ2lzdGVyczo6eG1tMzsKLSAgICBzdGF0aWMgY29u
c3QgRlBSUmVnIGZwUmVnVDQgPSBYODZSZWdpc3RlcnM6OnhtbTQ7Ci0gICAgc3RhdGljIGNvbnN0
IEZQUlJlZyBmcFJlZ1Q1ID0gWDg2UmVnaXN0ZXJzOjp4bW01OworICAgIHN0YXRpYyBjb25zdGV4
cHIgRlBSUmVnIGZwUmVnVDAgPSBYODZSZWdpc3RlcnM6OnhtbTA7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBGUFJSZWcgZnBSZWdUMSA9IFg4NlJlZ2lzdGVyczo6eG1tMTsKKyAgICBzdGF0aWMgY29u
c3RleHByIEZQUlJlZyBmcFJlZ1QyID0gWDg2UmVnaXN0ZXJzOjp4bW0yOworICAgIHN0YXRpYyBj
b25zdGV4cHIgRlBSUmVnIGZwUmVnVDMgPSBYODZSZWdpc3RlcnM6OnhtbTM7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUNCA9IFg4NlJlZ2lzdGVyczo6eG1tNDsKKyAgICBzdGF0
aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1Q1ID0gWDg2UmVnaXN0ZXJzOjp4bW01OwogI2lmIENQ
VShYODZfNjQpCiAgICAgLy8gT25seSBYODZfNjQgcGFzc2VzIGFndW1lbnRzIGluIHhtbSByZWdp
c3RlcnMKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGFyZ3VtZW50RlBSMCA9IFg4NlJlZ2lzdGVy
czo6eG1tMDsgLy8gZnBSZWdUMAotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRGUFIx
ID0gWDg2UmVnaXN0ZXJzOjp4bW0xOyAvLyBmcFJlZ1QxCi0gICAgc3RhdGljIGNvbnN0IEZQUlJl
ZyBhcmd1bWVudEZQUjIgPSBYODZSZWdpc3RlcnM6OnhtbTI7IC8vIGZwUmVnVDIKLSAgICBzdGF0
aWMgY29uc3QgRlBSUmVnIGFyZ3VtZW50RlBSMyA9IFg4NlJlZ2lzdGVyczo6eG1tMzsgLy8gZnBS
ZWdUMwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRGUFI0ID0gWDg2UmVnaXN0ZXJz
Ojp4bW00OyAvLyBmcFJlZ1Q0Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBhcmd1bWVudEZQUjUg
PSBYODZSZWdpc3RlcnM6OnhtbTU7IC8vIGZwUmVnVDUKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVn
IGFyZ3VtZW50RlBSNiA9IFg4NlJlZ2lzdGVyczo6eG1tNjsKLSAgICBzdGF0aWMgY29uc3QgRlBS
UmVnIGFyZ3VtZW50RlBSNyA9IFg4NlJlZ2lzdGVyczo6eG1tNzsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEZQUlJlZyBhcmd1bWVudEZQUjAgPSBYODZSZWdpc3RlcnM6OnhtbTA7IC8vIGZwUmVnVDAK
KyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBhcmd1bWVudEZQUjEgPSBYODZSZWdpc3RlcnM6
OnhtbTE7IC8vIGZwUmVnVDEKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBhcmd1bWVudEZQ
UjIgPSBYODZSZWdpc3RlcnM6OnhtbTI7IC8vIGZwUmVnVDIKKyAgICBzdGF0aWMgY29uc3RleHBy
IEZQUlJlZyBhcmd1bWVudEZQUjMgPSBYODZSZWdpc3RlcnM6OnhtbTM7IC8vIGZwUmVnVDMKKyAg
ICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBhcmd1bWVudEZQUjQgPSBYODZSZWdpc3RlcnM6Onht
bTQ7IC8vIGZwUmVnVDQKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBhcmd1bWVudEZQUjUg
PSBYODZSZWdpc3RlcnM6OnhtbTU7IC8vIGZwUmVnVDUKKyAgICBzdGF0aWMgY29uc3RleHByIEZQ
UlJlZyBhcmd1bWVudEZQUjYgPSBYODZSZWdpc3RlcnM6OnhtbTY7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBGUFJSZWcgYXJndW1lbnRGUFI3ID0gWDg2UmVnaXN0ZXJzOjp4bW03OwogI2VuZGlmCiAg
ICAgLy8gT24gWDg2IHRoZSByZXR1cm4gd2lsbCBhY3R1YWxseSBiZSBvbiB0aGUgeDg3IHN0YWNr
LAogICAgIC8vIHNvIHdlJ2xsIGNvcHkgdG8geG1tMCBmb3Igc2FuaXR5IQotICAgIHN0YXRpYyBj
b25zdCBGUFJSZWcgcmV0dXJuVmFsdWVGUFIgPSBYODZSZWdpc3RlcnM6OnhtbTA7IC8vIGZwUmVn
VDAKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyByZXR1cm5WYWx1ZUZQUiA9IFg4NlJlZ2lz
dGVyczo6eG1tMDsgLy8gZnBSZWdUMAogCiAgICAgLy8gRlBSUmVnIG1hcHBpbmcgaXMgZGlyZWN0
LCB0aGUgbWFjaGluZSByZWdzaXRlciBudW1iZXJzIGNhbgogICAgIC8vIGJlIHVzZWQgZGlyZWN0
bHkgYXMgaW5kaWNlcyBpbnRvIHRoZSBGUFIgUmVnaXN0ZXJCYW5rLgpAQCAtOTYsNyArOTYsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6ZnByTmFtZShyZWcpOwog
ICAgIH0KIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbnZhbGlkSW5kZXggPSAweGZmZmZm
ZmZmOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgSW52YWxpZEluZGV4ID0gMHhmZmZm
ZmZmZjsKIH07CiAKICNlbmRpZiAvLyBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQpAQCAtMTA2LDMw
ICsxMDYsMzAgQEAgcHVibGljOgogY2xhc3MgRlBSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBGUFJSZWcgUmVnaXN0ZXJUeXBlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJP
ZlJlZ2lzdGVycyA9IDY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlJl
Z2lzdGVycyA9IDY7CiAKICNpZiBDUFUoQVJNX0hBUkRGUCkKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gODsKICNlbHNlCi0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSAwOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDA7CiAj
ZW5kaWYKIAogICAgIC8vIFRlbXBvcmFyeSByZWdpc3RlcnMuCiAgICAgLy8gZDcgaXMgdXNlIGJ5
IHRoZSBNYWNyb0Fzc2VtYmxlciBhcyBmcFRlbXBSZWdpc3Rlci4KLSAgICBzdGF0aWMgY29uc3Qg
RlBSUmVnIGZwUmVnVDAgPSBBUk1SZWdpc3RlcnM6OmQwOwotICAgIHN0YXRpYyBjb25zdCBGUFJS
ZWcgZnBSZWdUMSA9IEFSTVJlZ2lzdGVyczo6ZDE7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBm
cFJlZ1QyID0gQVJNUmVnaXN0ZXJzOjpkMjsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDMgPSBBUk1SZWdpc3RlcnM6OmQzOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUNCA9
IEFSTVJlZ2lzdGVyczo6ZDQ7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1Q1ID0gQVJN
UmVnaXN0ZXJzOjpkNTsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QwID0gQVJN
UmVnaXN0ZXJzOjpkMDsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QxID0gQVJN
UmVnaXN0ZXJzOjpkMTsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QyID0gQVJN
UmVnaXN0ZXJzOjpkMjsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QzID0gQVJN
UmVnaXN0ZXJzOjpkMzsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1Q0ID0gQVJN
UmVnaXN0ZXJzOjpkNDsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1Q1ID0gQVJN
UmVnaXN0ZXJzOjpkNTsKICAgICAvLyBBUk12NyBkb2Vzbid0IHBhc3MgYXJndW1lbnRzIGluIGZw
IHJlZ2lzdGVycy4gVGhlIHJldHVybgogICAgIC8vIHZhbHVlIGlzIGFsc28gYWN0dWFsbHkgaW4g
aW50ZWdlciByZWdpc3RlcnMsIGZvciBub3cKICAgICAvLyB3ZSdsbCByZXR1cm4gaW4gZDAgZm9y
IHNpbXBsaWNpdHkuCi0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyByZXR1cm5WYWx1ZUZQUiA9IEFS
TVJlZ2lzdGVyczo6ZDA7IC8vIGZwUmVnVDAKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBy
ZXR1cm5WYWx1ZUZQUiA9IEFSTVJlZ2lzdGVyczo6ZDA7IC8vIGZwUmVnVDAKIAogI2lmIENQVShB
Uk1fSEFSREZQKQotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRGUFIwID0gQVJNUmVn
aXN0ZXJzOjpkMDsgLy8gZnBSZWdUMAotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRG
UFIxID0gQVJNUmVnaXN0ZXJzOjpkMTsgLy8gZnBSZWdUMQorICAgIHN0YXRpYyBjb25zdGV4cHIg
RlBSUmVnIGFyZ3VtZW50RlBSMCA9IEFSTVJlZ2lzdGVyczo6ZDA7IC8vIGZwUmVnVDAKKyAgICBz
dGF0aWMgY29uc3RleHByIEZQUlJlZyBhcmd1bWVudEZQUjEgPSBBUk1SZWdpc3RlcnM6OmQxOyAv
LyBmcFJlZ1QxCiAjZW5kaWYKIAogICAgIC8vIEZQUlJlZyBtYXBwaW5nIGlzIGRpcmVjdCwgdGhl
IG1hY2hpbmUgcmVnc2l0ZXIgbnVtYmVycyBjYW4KQEAgLTE2Myw3ICsxNjMsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6ZnByTmFtZShyZWcpOwogICAgIH0KIAot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbnZhbGlkSW5kZXggPSAweGZmZmZmZmZmOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgSW52YWxpZEluZGV4ID0gMHhmZmZmZmZmZjsKIH07
CiAKICNlbmRpZiAvLyBDUFUoQVJNKQpAQCAtMTczLDUzICsxNzMsNTMgQEAgcHVibGljOgogY2xh
c3MgRlBSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBGUFJSZWcgUmVnaXN0ZXJUeXBlOwot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDIzOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gODsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gMjM7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gODsKIAog
ICAgIC8vIFRlbXBvcmFyeSByZWdpc3RlcnMuCiAgICAgLy8gcTgtcTE1IGFyZSBjYWxsZWUgc2F2
ZWQsIHEzMSBpcyB1c2UgYnkgdGhlIE1hY3JvQXNzZW1ibGVyIGFzIGZwVGVtcFJlZ2lzdGVyLgot
ICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUMCA9IEFSTTY0UmVnaXN0ZXJzOjpxMDsKLSAg
ICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDEgPSBBUk02NFJlZ2lzdGVyczo6cTE7Ci0gICAg
c3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1QyID0gQVJNNjRSZWdpc3RlcnM6OnEyOwotICAgIHN0
YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUMyA9IEFSTTY0UmVnaXN0ZXJzOjpxMzsKLSAgICBzdGF0
aWMgY29uc3QgRlBSUmVnIGZwUmVnVDQgPSBBUk02NFJlZ2lzdGVyczo6cTQ7Ci0gICAgc3RhdGlj
IGNvbnN0IEZQUlJlZyBmcFJlZ1Q1ID0gQVJNNjRSZWdpc3RlcnM6OnE1OwotICAgIHN0YXRpYyBj
b25zdCBGUFJSZWcgZnBSZWdUNiA9IEFSTTY0UmVnaXN0ZXJzOjpxNjsKLSAgICBzdGF0aWMgY29u
c3QgRlBSUmVnIGZwUmVnVDcgPSBBUk02NFJlZ2lzdGVyczo6cTc7Ci0gICAgc3RhdGljIGNvbnN0
IEZQUlJlZyBmcFJlZ1Q4ID0gQVJNNjRSZWdpc3RlcnM6OnExNjsKLSAgICBzdGF0aWMgY29uc3Qg
RlBSUmVnIGZwUmVnVDkgPSBBUk02NFJlZ2lzdGVyczo6cTE3OwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMTAgPSBBUk02NFJlZ2lzdGVyczo6cTE4OwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMTEgPSBBUk02NFJlZ2lzdGVyczo6cTE5OwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMTIgPSBBUk02NFJlZ2lzdGVyczo6cTIwOwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMTMgPSBBUk02NFJlZ2lzdGVyczo6cTIxOwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMTQgPSBBUk02NFJlZ2lzdGVyczo6cTIyOwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMTUgPSBBUk02NFJlZ2lzdGVyczo6cTIzOwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMTYgPSBBUk02NFJlZ2lzdGVyczo6cTI0OwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMTcgPSBBUk02NFJlZ2lzdGVyczo6cTI1OwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMTggPSBBUk02NFJlZ2lzdGVyczo6cTI2OwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMTkgPSBBUk02NFJlZ2lzdGVyczo6cTI3OwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMjAgPSBBUk02NFJlZ2lzdGVyczo6cTI4OwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMjEgPSBBUk02NFJlZ2lzdGVyczo6cTI5OwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMjIgPSBBUk02NFJlZ2lzdGVyczo6cTMwOwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdDUzAgPSBBUk02NFJlZ2lzdGVyczo6cTg7Ci0gICAgc3RhdGljIGNvbnN0IEZQ
UlJlZyBmcFJlZ0NTMSA9IEFSTTY0UmVnaXN0ZXJzOjpxOTsKLSAgICBzdGF0aWMgY29uc3QgRlBS
UmVnIGZwUmVnQ1MyID0gQVJNNjRSZWdpc3RlcnM6OnExMDsKLSAgICBzdGF0aWMgY29uc3QgRlBS
UmVnIGZwUmVnQ1MzID0gQVJNNjRSZWdpc3RlcnM6OnExMTsKLSAgICBzdGF0aWMgY29uc3QgRlBS
UmVnIGZwUmVnQ1M0ID0gQVJNNjRSZWdpc3RlcnM6OnExMjsKLSAgICBzdGF0aWMgY29uc3QgRlBS
UmVnIGZwUmVnQ1M1ID0gQVJNNjRSZWdpc3RlcnM6OnExMzsKLSAgICBzdGF0aWMgY29uc3QgRlBS
UmVnIGZwUmVnQ1M2ID0gQVJNNjRSZWdpc3RlcnM6OnExNDsKLSAgICBzdGF0aWMgY29uc3QgRlBS
UmVnIGZwUmVnQ1M3ID0gQVJNNjRSZWdpc3RlcnM6OnExNTsKLQotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgYXJndW1lbnRGUFIwID0gQVJNNjRSZWdpc3RlcnM6OnEwOyAvLyBmcFJlZ1QwCi0gICAg
c3RhdGljIGNvbnN0IEZQUlJlZyBhcmd1bWVudEZQUjEgPSBBUk02NFJlZ2lzdGVyczo6cTE7IC8v
IGZwUmVnVDEKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGFyZ3VtZW50RlBSMiA9IEFSTTY0UmVn
aXN0ZXJzOjpxMjsgLy8gZnBSZWdUMgotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRG
UFIzID0gQVJNNjRSZWdpc3RlcnM6OnEzOyAvLyBmcFJlZ1QzCi0gICAgc3RhdGljIGNvbnN0IEZQ
UlJlZyBhcmd1bWVudEZQUjQgPSBBUk02NFJlZ2lzdGVyczo6cTQ7IC8vIGZwUmVnVDQKLSAgICBz
dGF0aWMgY29uc3QgRlBSUmVnIGFyZ3VtZW50RlBSNSA9IEFSTTY0UmVnaXN0ZXJzOjpxNTsgLy8g
ZnBSZWdUNQotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRGUFI2ID0gQVJNNjRSZWdp
c3RlcnM6OnE2OyAvLyBmcFJlZ1Q2Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBhcmd1bWVudEZQ
UjcgPSBBUk02NFJlZ2lzdGVyczo6cTc7IC8vIGZwUmVnVDcKKyAgICBzdGF0aWMgY29uc3RleHBy
IEZQUlJlZyBmcFJlZ1QwID0gQVJNNjRSZWdpc3RlcnM6OnEwOworICAgIHN0YXRpYyBjb25zdGV4
cHIgRlBSUmVnIGZwUmVnVDEgPSBBUk02NFJlZ2lzdGVyczo6cTE7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBGUFJSZWcgZnBSZWdUMiA9IEFSTTY0UmVnaXN0ZXJzOjpxMjsKKyAgICBzdGF0aWMgY29u
c3RleHByIEZQUlJlZyBmcFJlZ1QzID0gQVJNNjRSZWdpc3RlcnM6OnEzOworICAgIHN0YXRpYyBj
b25zdGV4cHIgRlBSUmVnIGZwUmVnVDQgPSBBUk02NFJlZ2lzdGVyczo6cTQ7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUNSA9IEFSTTY0UmVnaXN0ZXJzOjpxNTsKKyAgICBzdGF0
aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1Q2ID0gQVJNNjRSZWdpc3RlcnM6OnE2OworICAgIHN0
YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDcgPSBBUk02NFJlZ2lzdGVyczo6cTc7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUOCA9IEFSTTY0UmVnaXN0ZXJzOjpxMTY7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUOSA9IEFSTTY0UmVnaXN0ZXJzOjpxMTc7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMTAgPSBBUk02NFJlZ2lzdGVyczo6
cTE4OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDExID0gQVJNNjRSZWdpc3Rl
cnM6OnExOTsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QxMiA9IEFSTTY0UmVn
aXN0ZXJzOjpxMjA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMTMgPSBBUk02
NFJlZ2lzdGVyczo6cTIxOworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDE0ID0g
QVJNNjRSZWdpc3RlcnM6OnEyMjsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1Qx
NSA9IEFSTTY0UmVnaXN0ZXJzOjpxMjM7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBS
ZWdUMTYgPSBBUk02NFJlZ2lzdGVyczo6cTI0OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVn
IGZwUmVnVDE3ID0gQVJNNjRSZWdpc3RlcnM6OnEyNTsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQ
UlJlZyBmcFJlZ1QxOCA9IEFSTTY0UmVnaXN0ZXJzOjpxMjY7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBGUFJSZWcgZnBSZWdUMTkgPSBBUk02NFJlZ2lzdGVyczo6cTI3OworICAgIHN0YXRpYyBjb25z
dGV4cHIgRlBSUmVnIGZwUmVnVDIwID0gQVJNNjRSZWdpc3RlcnM6OnEyODsKKyAgICBzdGF0aWMg
Y29uc3RleHByIEZQUlJlZyBmcFJlZ1QyMSA9IEFSTTY0UmVnaXN0ZXJzOjpxMjk7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMjIgPSBBUk02NFJlZ2lzdGVyczo6cTMwOworICAg
IHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnQ1MwID0gQVJNNjRSZWdpc3RlcnM6OnE4Owor
ICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnQ1MxID0gQVJNNjRSZWdpc3RlcnM6OnE5
OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnQ1MyID0gQVJNNjRSZWdpc3RlcnM6
OnExMDsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ0NTMyA9IEFSTTY0UmVnaXN0
ZXJzOjpxMTE7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdDUzQgPSBBUk02NFJl
Z2lzdGVyczo6cTEyOworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnQ1M1ID0gQVJN
NjRSZWdpc3RlcnM6OnExMzsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ0NTNiA9
IEFSTTY0UmVnaXN0ZXJzOjpxMTQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdD
UzcgPSBBUk02NFJlZ2lzdGVyczo6cTE1OworCisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcg
YXJndW1lbnRGUFIwID0gQVJNNjRSZWdpc3RlcnM6OnEwOyAvLyBmcFJlZ1QwCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBGUFJSZWcgYXJndW1lbnRGUFIxID0gQVJNNjRSZWdpc3RlcnM6OnExOyAvLyBm
cFJlZ1QxCisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgYXJndW1lbnRGUFIyID0gQVJNNjRS
ZWdpc3RlcnM6OnEyOyAvLyBmcFJlZ1QyCisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgYXJn
dW1lbnRGUFIzID0gQVJNNjRSZWdpc3RlcnM6OnEzOyAvLyBmcFJlZ1QzCisgICAgc3RhdGljIGNv
bnN0ZXhwciBGUFJSZWcgYXJndW1lbnRGUFI0ID0gQVJNNjRSZWdpc3RlcnM6OnE0OyAvLyBmcFJl
Z1Q0CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgYXJndW1lbnRGUFI1ID0gQVJNNjRSZWdp
c3RlcnM6OnE1OyAvLyBmcFJlZ1Q1CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgYXJndW1l
bnRGUFI2ID0gQVJNNjRSZWdpc3RlcnM6OnE2OyAvLyBmcFJlZ1Q2CisgICAgc3RhdGljIGNvbnN0
ZXhwciBGUFJSZWcgYXJndW1lbnRGUFI3ID0gQVJNNjRSZWdpc3RlcnM6OnE3OyAvLyBmcFJlZ1Q3
CiAKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIHJldHVyblZhbHVlRlBSID0gQVJNNjRSZWdpc3Rl
cnM6OnEwOyAvLyBmcFJlZ1QwCisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgcmV0dXJuVmFs
dWVGUFIgPSBBUk02NFJlZ2lzdGVyczo6cTA7IC8vIGZwUmVnVDAKIAogICAgIHN0YXRpYyBGUFJS
ZWcgdG9SZWdpc3Rlcih1bnNpZ25lZCBpbmRleCkKICAgICB7CkBAIC0yNTgsNyArMjU4LDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OmZwck5hbWUocmVnKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW52YWxpZEluZGV4ID0gMHhmZmZmZmZm
ZjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEludmFsaWRJbmRleCA9IDB4ZmZmZmZm
ZmY7CiB9OwogCiAjZW5kaWYgLy8gQ1BVKEFSTTY0KQpAQCAtMjY4LDIyICsyNjgsMjIgQEAgcHVi
bGljOgogY2xhc3MgRlBSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBGUFJSZWcgUmVnaXN0
ZXJUeXBlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDc7
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSAy
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSA3Owor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9
IDI7CiAKICAgICAvLyBUZW1wb3JhcnkgcmVnaXN0ZXJzLgotICAgIHN0YXRpYyBjb25zdCBGUFJS
ZWcgZnBSZWdUMCA9IE1JUFNSZWdpc3RlcnM6OmYwOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcg
ZnBSZWdUMSA9IE1JUFNSZWdpc3RlcnM6OmYyOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBS
ZWdUMiA9IE1JUFNSZWdpc3RlcnM6OmY0OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
MyA9IE1JUFNSZWdpc3RlcnM6OmY2OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUNCA9
IE1JUFNSZWdpc3RlcnM6OmY4OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUNSA9IE1J
UFNSZWdpc3RlcnM6OmYxMDsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDYgPSBNSVBT
UmVnaXN0ZXJzOjpmMTg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMCA9IE1J
UFNSZWdpc3RlcnM6OmYwOworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDEgPSBN
SVBTUmVnaXN0ZXJzOjpmMjsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QyID0g
TUlQU1JlZ2lzdGVyczo6ZjQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMyA9
IE1JUFNSZWdpc3RlcnM6OmY2OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDQg
PSBNSVBTUmVnaXN0ZXJzOjpmODsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1Q1
ID0gTUlQU1JlZ2lzdGVyczo6ZjEwOworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVn
VDYgPSBNSVBTUmVnaXN0ZXJzOjpmMTg7CiAKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIHJldHVy
blZhbHVlRlBSID0gTUlQU1JlZ2lzdGVyczo6ZjA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJS
ZWcgcmV0dXJuVmFsdWVGUFIgPSBNSVBTUmVnaXN0ZXJzOjpmMDsKIAotICAgIHN0YXRpYyBjb25z
dCBGUFJSZWcgYXJndW1lbnRGUFIwID0gTUlQU1JlZ2lzdGVyczo6ZjEyOwotICAgIHN0YXRpYyBj
b25zdCBGUFJSZWcgYXJndW1lbnRGUFIxID0gTUlQU1JlZ2lzdGVyczo6ZjE0OworICAgIHN0YXRp
YyBjb25zdGV4cHIgRlBSUmVnIGFyZ3VtZW50RlBSMCA9IE1JUFNSZWdpc3RlcnM6OmYxMjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBhcmd1bWVudEZQUjEgPSBNSVBTUmVnaXN0ZXJzOjpm
MTQ7CiAKICAgICBzdGF0aWMgRlBSUmVnIHRvUmVnaXN0ZXIodW5zaWduZWQgaW5kZXgpCiAgICAg
ewpAQCAtMzI0LDcgKzMyNCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1i
bGVyOjpmcHJOYW1lKHJlZyk7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIElu
dmFsaWRJbmRleCA9IDB4ZmZmZmZmZmY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBJ
bnZhbGlkSW5kZXggPSAweGZmZmZmZmZmOwogfTsKIAogI2VuZGlmIC8vIENQVShNSVBTKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMzcs
MjYgKzMzNywyNiBAQCBwcml2YXRlOgogY2xhc3MgR1BSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBHUFJSZWcgUmVnaXN0ZXJUeXBlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1i
ZXJPZlJlZ2lzdGVycyA9IDY7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQXJn
dW1lbnRSZWdpc3RlcnMgPSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSA2OworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9B
UkdVTUVOVF9SRUdJU1RFUlM7CiAKICAgICAvLyBUZW1wb3JhcnkgcmVnaXN0ZXJzLgotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgcmVnVDAgPSBYODZSZWdpc3RlcnM6OmVheDsKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ1QxID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0gICAgc3RhdGljIGNvbnN0
IEdQUlJlZyByZWdUMiA9IFg4NlJlZ2lzdGVyczo6ZWN4OwotICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgcmVnVDMgPSBYODZSZWdpc3RlcnM6OmVieDsgLy8gQ2FsbGVlLXNhdmUKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ1Q0ID0gWDg2UmVnaXN0ZXJzOjplc2k7IC8vIENhbGxlZS1zYXZlCi0g
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNSA9IFg4NlJlZ2lzdGVyczo6ZWRpOyAvLyBDYWxs
ZWUtc2F2ZQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBYODZS
ZWdpc3RlcnM6OmVicDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMCA9IFg4NlJl
Z2lzdGVyczo6ZWF4OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QxID0gWDg2UmVn
aXN0ZXJzOjplZHg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDIgPSBYODZSZWdp
c3RlcnM6OmVjeDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMyA9IFg4NlJlZ2lz
dGVyczo6ZWJ4OyAvLyBDYWxsZWUtc2F2ZQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJl
Z1Q0ID0gWDg2UmVnaXN0ZXJzOjplc2k7IC8vIENhbGxlZS1zYXZlCisgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgcmVnVDUgPSBYODZSZWdpc3RlcnM6OmVkaTsgLy8gQ2FsbGVlLXNhdmUKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IFg4NlJlZ2lzdGVy
czo6ZWJwOwogICAgIC8vIFRoZXNlIGNvbnN0YW50cyBwcm92aWRlIHRoZSBuYW1lcyBmb3IgdGhl
IGdlbmVyYWwgcHVycG9zZSBhcmd1bWVudCAmIHJldHVybiB2YWx1ZSByZWdpc3RlcnMuCi0gICAg
c3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBYODZSZWdpc3RlcnM6OmVjeDsgLy8g
cmVnVDIKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IFg4NlJlZ2lzdGVy
czo6ZWR4OyAvLyByZWdUMQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIyID0g
WDg2UmVnaXN0ZXJzOjplYXg7IC8vIHJlZ1QwCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1
bWVudEdQUjMgPSBYODZSZWdpc3RlcnM6OmVieDsgLy8gcmVnVDMKLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIG5vbkFyZ0dQUjAgPSBYODZSZWdpc3RlcnM6OmVzaTsgLy8gcmVnVDQKLSAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIHJldHVyblZhbHVlR1BSID0gWDg2UmVnaXN0ZXJzOjplYXg7IC8vIHJl
Z1QwCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSBYODZSZWdpc3Rl
cnM6OmVkeDsgLy8gcmVnVDEKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNlcnZlZE5v
blJldHVybkdQUiA9IFg4NlJlZ2lzdGVyczo6ZWN4OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BS
UmVnIGFyZ3VtZW50R1BSMCA9IFg4NlJlZ2lzdGVyczo6ZWN4OyAvLyByZWdUMgorICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IFg4NlJlZ2lzdGVyczo6ZWR4OyAvLyBy
ZWdUMQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSMiA9IFg4NlJlZ2lz
dGVyczo6ZWF4OyAvLyByZWdUMAorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50
R1BSMyA9IFg4NlJlZ2lzdGVyczo6ZWJ4OyAvLyByZWdUMworICAgIHN0YXRpYyBjb25zdGV4cHIg
R1BSUmVnIG5vbkFyZ0dQUjAgPSBYODZSZWdpc3RlcnM6OmVzaTsgLy8gcmVnVDQKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5WYWx1ZUdQUiA9IFg4NlJlZ2lzdGVyczo6ZWF4OyAv
LyByZWdUMAorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblZhbHVlR1BSMiA9IFg4
NlJlZ2lzdGVyczo6ZWR4OyAvLyByZWdUMQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5v
blByZXNlcnZlZE5vblJldHVybkdQUiA9IFg4NlJlZ2lzdGVyczo6ZWN4OwogCiAgICAgc3RhdGlj
IEdQUlJlZyB0b1JlZ2lzdGVyKHVuc2lnbmVkIGluZGV4KQogICAgIHsKQEAgLTM4Niw3ICszODYs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6Z3ByTmFtZShyZWcp
OwogICAgIH0KIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbnZhbGlkSW5kZXggPSAweGZm
ZmZmZmZmOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgSW52YWxpZEluZGV4ID0gMHhm
ZmZmZmZmZjsKIH07CiAKICNlbmRpZiAvLyBDUFUoWDg2KQpAQCAtNDAzLDY4ICs0MDMsNjggQEAg
cHVibGljOgogY2xhc3MgR1BSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBHUFJSZWcgUmVn
aXN0ZXJUeXBlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9
IDExOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJz
ID0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUzsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gMTE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lT
VEVSUzsKIAogICAgIC8vIFRoZXNlIHJlZ2lzdGVycyBtYXRjaCB0aGUgYmFzZWxpbmUgSklULgot
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6
OmVicDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHRhZ1R5cGVOdW1iZXJSZWdpc3RlciA9IFg4
NlJlZ2lzdGVyczo6cjE0OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgdGFnTWFza1JlZ2lzdGVy
ID0gWDg2UmVnaXN0ZXJzOjpyMTU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgY2FsbEZy
YW1lUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVicDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxNDsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyB0YWdNYXNrUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxNTsK
IAogICAgIC8vIFRlbXBvcmFyeSByZWdpc3RlcnMuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBy
ZWdUMCA9IFg4NlJlZ2lzdGVyczo6ZWF4OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJl
Z1QwID0gWDg2UmVnaXN0ZXJzOjplYXg7CiAjaWYgIU9TKFdJTkRPV1MpCi0gICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdUMSA9IFg4NlJlZ2lzdGVyczo6ZXNpOwotICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnVDIgPSBYODZSZWdpc3RlcnM6OmVkeDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ1QzID0gWDg2UmVnaXN0ZXJzOjplY3g7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdU
NCA9IFg4NlJlZ2lzdGVyczo6cjg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNSA9IFg4
NlJlZ2lzdGVyczo6cjEwOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDYgPSBYODZSZWdp
c3RlcnM6OmVkaTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q3ID0gWDg2UmVnaXN0ZXJz
OjpyOTsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMSA9IFg4NlJlZ2lzdGVyczo6
ZXNpOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QyID0gWDg2UmVnaXN0ZXJzOjpl
ZHg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDMgPSBYODZSZWdpc3RlcnM6OmVj
eDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUNCA9IFg4NlJlZ2lzdGVyczo6cjg7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDUgPSBYODZSZWdpc3RlcnM6OnIxMDsK
KyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUNiA9IFg4NlJlZ2lzdGVyczo6ZWRpOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q3ID0gWDg2UmVnaXN0ZXJzOjpyOTsKICNl
bHNlCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMSA9IFg4NlJlZ2lzdGVyczo6ZWR4Owot
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDIgPSBYODZSZWdpc3RlcnM6OnI4OwotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgcmVnVDMgPSBYODZSZWdpc3RlcnM6OnI5OwotICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgcmVnVDQgPSBYODZSZWdpc3RlcnM6OnIxMDsKLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJlZ1Q1ID0gWDg2UmVnaXN0ZXJzOjplY3g7CisgICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgcmVnVDEgPSBYODZSZWdpc3RlcnM6OmVkeDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyByZWdUMiA9IFg4NlJlZ2lzdGVyczo6cjg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgcmVnVDMgPSBYODZSZWdpc3RlcnM6OnI5OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVn
IHJlZ1Q0ID0gWDg2UmVnaXN0ZXJzOjpyMTA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcg
cmVnVDUgPSBYODZSZWdpc3RlcnM6OmVjeDsKICNlbmRpZgogCi0gICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyByZWdDUzAgPSBYODZSZWdpc3RlcnM6OmVieDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyByZWdDUzAgPSBYODZSZWdpc3RlcnM6OmVieDsKIAogI2lmICFPUyhXSU5ET1dTKQotICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1MxID0gWDg2UmVnaXN0ZXJzOjpyMTI7Ci0gICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyByZWdDUzIgPSBYODZSZWdpc3RlcnM6OnIxMzsKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ0NTMyA9IFg4NlJlZ2lzdGVyczo6cjE0OwotICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgcmVnQ1M0ID0gWDg2UmVnaXN0ZXJzOjpyMTU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgcmVnQ1MxID0gWDg2UmVnaXN0ZXJzOjpyMTI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgcmVnQ1MyID0gWDg2UmVnaXN0ZXJzOjpyMTM7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgcmVnQ1MzID0gWDg2UmVnaXN0ZXJzOjpyMTQ7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgcmVnQ1M0ID0gWDg2UmVnaXN0ZXJzOjpyMTU7CiAjZWxzZQotICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgcmVnQ1MxID0gWDg2UmVnaXN0ZXJzOjplc2k7Ci0gICAgc3RhdGljIGNvbnN0
IEdQUlJlZyByZWdDUzIgPSBYODZSZWdpc3RlcnM6OmVkaTsKLSAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIHJlZ0NTMyA9IFg4NlJlZ2lzdGVyczo6cjEyOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
cmVnQ1M0ID0gWDg2UmVnaXN0ZXJzOjpyMTM7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdD
UzUgPSBYODZSZWdpc3RlcnM6OnIxNDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0NTNiA9
IFg4NlJlZ2lzdGVyczo6cjE1OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTMSA9
IFg4NlJlZ2lzdGVyczo6ZXNpOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTMiA9
IFg4NlJlZ2lzdGVyczo6ZWRpOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTMyA9
IFg4NlJlZ2lzdGVyczo6cjEyOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTNCA9
IFg4NlJlZ2lzdGVyczo6cjEzOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTNSA9
IFg4NlJlZ2lzdGVyczo6cjE0OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTNiA9
IFg4NlJlZ2lzdGVyczo6cjE1OwogI2VuZGlmCiAKICAgICAvLyBUaGVzZSBjb25zdGFudHMgcHJv
dmlkZSB0aGUgbmFtZXMgZm9yIHRoZSBnZW5lcmFsIHB1cnBvc2UgYXJndW1lbnQgJiByZXR1cm4g
dmFsdWUgcmVnaXN0ZXJzLgogI2lmICFPUyhXSU5ET1dTKQotICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgYXJndW1lbnRHUFIwID0gWDg2UmVnaXN0ZXJzOjplZGk7IC8vIHJlZ1Q2Ci0gICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjEgPSBYODZSZWdpc3RlcnM6OmVzaTsgLy8gcmVnVDEK
LSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMiA9IFg4NlJlZ2lzdGVyczo6ZWR4
OyAvLyByZWdUMgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIzID0gWDg2UmVn
aXN0ZXJzOjplY3g7IC8vIHJlZ1QzCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQ
UjQgPSBYODZSZWdpc3RlcnM6OnI4OyAvLyByZWdUNAotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
YXJndW1lbnRHUFI1ID0gWDg2UmVnaXN0ZXJzOjpyOTsgLy8gcmVnVDcKKyAgICBzdGF0aWMgY29u
c3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjAgPSBYODZSZWdpc3RlcnM6OmVkaTsgLy8gcmVnVDYK
KyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjEgPSBYODZSZWdpc3RlcnM6
OmVzaTsgLy8gcmVnVDEKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjIg
PSBYODZSZWdpc3RlcnM6OmVkeDsgLy8gcmVnVDIKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJl
ZyBhcmd1bWVudEdQUjMgPSBYODZSZWdpc3RlcnM6OmVjeDsgLy8gcmVnVDMKKyAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjQgPSBYODZSZWdpc3RlcnM6OnI4OyAvLyByZWdU
NAorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSNSA9IFg4NlJlZ2lzdGVy
czo6cjk7IC8vIHJlZ1Q3CiAjZWxzZQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRH
UFIwID0gWDg2UmVnaXN0ZXJzOjplY3g7IC8vIHJlZ1Q1Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyBhcmd1bWVudEdQUjEgPSBYODZSZWdpc3RlcnM6OmVkeDsgLy8gcmVnVDEKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMiA9IFg4NlJlZ2lzdGVyczo6cjg7IC8vIHJlZ1QyCi0g
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBYODZSZWdpc3RlcnM6OnI5OyAv
LyByZWdUMworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IFg4NlJl
Z2lzdGVyczo6ZWN4OyAvLyByZWdUNQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3Vt
ZW50R1BSMSA9IFg4NlJlZ2lzdGVyczo6ZWR4OyAvLyByZWdUMQorICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIGFyZ3VtZW50R1BSMiA9IFg4NlJlZ2lzdGVyczo6cjg7IC8vIHJlZ1QyCisgICAg
c3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgYXJndW1lbnRHUFIzID0gWDg2UmVnaXN0ZXJzOjpyOTsg
Ly8gcmVnVDMKICNlbmRpZgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMCA9IFg4
NlJlZ2lzdGVyczo6cjEwOyAvLyByZWdUNSAocmVnVDQgb24gV2luZG93cykKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJldHVyblZhbHVlR1BSID0gWDg2UmVnaXN0ZXJzOjplYXg7IC8vIHJlZ1Qw
Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSBYODZSZWdpc3RlcnM6
OmVkeDsgLy8gcmVnVDEgb3IgcmVnVDIKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNl
cnZlZE5vblJldHVybkdQUiA9IFg4NlJlZ2lzdGVyczo6cjEwOyAvLyByZWdUNSAocmVnVDQgb24g
V2luZG93cykKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNlcnZlZE5vbkFyZ3VtZW50
R1BSMCA9IFg4NlJlZ2lzdGVyczo6cjEwOyAvLyByZWdUNSAocmVnVDQgb24gV2luZG93cykKLSAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNlcnZlZE5vbkFyZ3VtZW50R1BSMSA9IFg4NlJl
Z2lzdGVyczo6ZWF4OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5vbkFyZ0dQUjAgPSBY
ODZSZWdpc3RlcnM6OnIxMDsgLy8gcmVnVDUgKHJlZ1Q0IG9uIFdpbmRvd3MpCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSBYODZSZWdpc3RlcnM6OmVheDsgLy8g
cmVnVDAKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSBYODZS
ZWdpc3RlcnM6OmVkeDsgLy8gcmVnVDEgb3IgcmVnVDIKKyAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSBYODZSZWdpc3RlcnM6OnIxMDsgLy8gcmVn
VDUgKHJlZ1Q0IG9uIFdpbmRvd3MpCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbm9uUHJl
c2VydmVkTm9uQXJndW1lbnRHUFIwID0gWDg2UmVnaXN0ZXJzOjpyMTA7IC8vIHJlZ1Q1IChyZWdU
NCBvbiBXaW5kb3dzKQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5vblByZXNlcnZlZE5v
bkFyZ3VtZW50R1BSMSA9IFg4NlJlZ2lzdGVyczo6ZWF4OwogCiAgICAgLy8gRklYTUU6IEkgYmVs
aWV2ZSB0aGF0IGFsbCB1c2VzIG9mIHRoaXMgYXJlIGRlYWQgaW4gdGhlIHNlbnNlIHRoYXQgaXQg
anVzdCBjYXVzZXMgdGhlIHNjcmF0Y2gKICAgICAvLyByZWdpc3RlciBhbGxvY2F0b3IgdG8gc2Vs
ZWN0IGEgZGlmZmVyZW50IHJlZ2lzdGVyIGFuZCBwb3RlbnRpYWxseSBzcGlsbCB0aGluZ3MuIEl0
IHdvdWxkIGJlIGJldHRlcgpAQCAtNTIxLDcgKzUyMSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIHJlc2VydmVkUmVnaXN0ZXJzOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgSW52YWxpZEluZGV4ID0gMHhmZmZmZmZmZjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIEludmFsaWRJbmRleCA9IDB4ZmZmZmZmZmY7CiB9OwogCiAjZW5kaWYgLy8gQ1BVKFg4
Nl82NCkKQEAgLTUzMywzMiArNTMzLDMyIEBAIHB1YmxpYzoKIGNsYXNzIEdQUkluZm8gewogcHVi
bGljOgogICAgIHR5cGVkZWYgR1BSUmVnIFJlZ2lzdGVyVHlwZTsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSA5OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVS
UzsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gOTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMg
PSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTOwogCiAgICAgLy8gVGVtcG9yYXJ5IHJlZ2lz
dGVycy4KLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QwID0gQVJNUmVnaXN0ZXJzOjpyMDsK
LSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxID0gQVJNUmVnaXN0ZXJzOjpyMTsKLSAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0gQVJNUmVnaXN0ZXJzOjpyMjsKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ1QzID0gQVJNUmVnaXN0ZXJzOjpyMzsKLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJlZ1Q0ID0gQVJNUmVnaXN0ZXJzOjpyODsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ1Q1ID0gQVJNUmVnaXN0ZXJzOjpyOTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q2
ID0gQVJNUmVnaXN0ZXJzOjpyMTA7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNyA9IEFS
TVJlZ2lzdGVyczo6cjU7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUOCA9IEFSTVJlZ2lz
dGVyczo6cjQ7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzAgPSBBUk1SZWdpc3RlcnM6
OnIxMTsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMCA9IEFSTVJlZ2lzdGVyczo6
cjA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDEgPSBBUk1SZWdpc3RlcnM6OnIx
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QyID0gQVJNUmVnaXN0ZXJzOjpyMjsK
KyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMyA9IEFSTVJlZ2lzdGVyczo6cjM7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDQgPSBBUk1SZWdpc3RlcnM6OnI4OworICAg
IHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q1ID0gQVJNUmVnaXN0ZXJzOjpyOTsKKyAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUNiA9IEFSTVJlZ2lzdGVyczo6cjEwOworICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q3ID0gQVJNUmVnaXN0ZXJzOjpyNTsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZWdUOCA9IEFSTVJlZ2lzdGVyczo6cjQ7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgcmVnQ1MwID0gQVJNUmVnaXN0ZXJzOjpyMTE7CiAgICAgLy8gVGhl
c2UgcmVnaXN0ZXJzIG1hdGNoIHRoZSBiYXNlbGluZSBKSVQuCi0gICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6ZnA7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OmZwOwogICAg
IC8vIFRoZXNlIGNvbnN0YW50cyBwcm92aWRlIHRoZSBuYW1lcyBmb3IgdGhlIGdlbmVyYWwgcHVy
cG9zZSBhcmd1bWVudCAmIHJldHVybiB2YWx1ZSByZWdpc3RlcnMuCi0gICAgc3RhdGljIGNvbnN0
IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBBUk1SZWdpc3RlcnM6OnIwOyAvLyByZWdUMAotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIxID0gQVJNUmVnaXN0ZXJzOjpyMTsgLy8gcmVn
VDEKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMiA9IEFSTVJlZ2lzdGVyczo6
cjI7IC8vIHJlZ1QyCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBBUk1S
ZWdpc3RlcnM6OnIzOyAvLyByZWdUMwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BS
MCA9IEFSTVJlZ2lzdGVyczo6cjQ7IC8vIHJlZ1Q4Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBu
b25BcmdHUFIxID0gQVJNUmVnaXN0ZXJzOjpyODsgLy8gcmVnVDQKLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJldHVyblZhbHVlR1BSID0gQVJNUmVnaXN0ZXJzOjpyMDsgLy8gcmVnVDAKLSAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIHJldHVyblZhbHVlR1BSMiA9IEFSTVJlZ2lzdGVyczo6cjE7IC8v
IHJlZ1QxCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIg
PSBBUk1SZWdpc3RlcnM6OnI1OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50
R1BSMCA9IEFSTVJlZ2lzdGVyczo6cjA7IC8vIHJlZ1QwCisgICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgYXJndW1lbnRHUFIxID0gQVJNUmVnaXN0ZXJzOjpyMTsgLy8gcmVnVDEKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjIgPSBBUk1SZWdpc3RlcnM6OnIyOyAvLyBy
ZWdUMgorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IEFSTVJlZ2lz
dGVyczo6cjM7IC8vIHJlZ1QzCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbm9uQXJnR1BS
MCA9IEFSTVJlZ2lzdGVyczo6cjQ7IC8vIHJlZ1Q4CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgbm9uQXJnR1BSMSA9IEFSTVJlZ2lzdGVyczo6cjg7IC8vIHJlZ1Q0CisgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSBBUk1SZWdpc3RlcnM6OnIwOyAvLyByZWdU
MAorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblZhbHVlR1BSMiA9IEFSTVJlZ2lz
dGVyczo6cjE7IC8vIHJlZ1QxCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbm9uUHJlc2Vy
dmVkTm9uUmV0dXJuR1BSID0gQVJNUmVnaXN0ZXJzOjpyNTsKIAogICAgIHN0YXRpYyBHUFJSZWcg
dG9SZWdpc3Rlcih1bnNpZ25lZCBpbmRleCkKICAgICB7CkBAIC01OTAsNyArNTkwLDcgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6Omdwck5hbWUocmVnKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW52YWxpZEluZGV4ID0gMHhmZmZmZmZmZjsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEludmFsaWRJbmRleCA9IDB4ZmZmZmZmZmY7
CiB9OwogCiAjZW5kaWYgLy8gQ1BVKEFSTSkKQEAgLTYwMyw1OCArNjAzLDU4IEBAIHB1YmxpYzoK
IGNsYXNzIEdQUkluZm8gewogcHVibGljOgogICAgIHR5cGVkZWYgR1BSUmVnIFJlZ2lzdGVyVHlw
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSAxNjsKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDg7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDE2OworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDg7
CiAKICAgICAvLyBUaGVzZSByZWdpc3RlcnMgbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVC4KLSAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OmZw
OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgdGFnVHlwZU51bWJlclJlZ2lzdGVyID0gQVJNNjRS
ZWdpc3RlcnM6OngyNzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHRhZ01hc2tSZWdpc3RlciA9
IEFSTTY0UmVnaXN0ZXJzOjp4Mjg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBkYXRhVGVtcFJl
Z2lzdGVyID0gTWFjcm9Bc3NlbWJsZXI6OmRhdGFUZW1wUmVnaXN0ZXI7Ci0gICAgc3RhdGljIGNv
bnN0IEdQUlJlZyBtZW1vcnlUZW1wUmVnaXN0ZXIgPSBNYWNyb0Fzc2VtYmxlcjo6bWVtb3J5VGVt
cFJlZ2lzdGVyOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVy
ID0gQVJNNjRSZWdpc3RlcnM6OmZwOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHRhZ1R5
cGVOdW1iZXJSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjp4Mjc7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgdGFnTWFza1JlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OngyODsKKyAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyBkYXRhVGVtcFJlZ2lzdGVyID0gTWFjcm9Bc3NlbWJsZXI6
OmRhdGFUZW1wUmVnaXN0ZXI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbWVtb3J5VGVt
cFJlZ2lzdGVyID0gTWFjcm9Bc3NlbWJsZXI6Om1lbW9yeVRlbXBSZWdpc3RlcjsKICAgICAvLyBU
ZW1wb3JhcnkgcmVnaXN0ZXJzLgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDAgPSBBUk02
NFJlZ2lzdGVyczo6eDA7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMSA9IEFSTTY0UmVn
aXN0ZXJzOjp4MTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0gQVJNNjRSZWdpc3Rl
cnM6OngyOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDMgPSBBUk02NFJlZ2lzdGVyczo6
eDM7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNCA9IEFSTTY0UmVnaXN0ZXJzOjp4NDsK
LSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q1ID0gQVJNNjRSZWdpc3RlcnM6Ong1OwotICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDYgPSBBUk02NFJlZ2lzdGVyczo6eDY7Ci0gICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyByZWdUNyA9IEFSTTY0UmVnaXN0ZXJzOjp4NzsKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ1Q4ID0gQVJNNjRSZWdpc3RlcnM6Ong4OwotICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgcmVnVDkgPSBBUk02NFJlZ2lzdGVyczo6eDk7Ci0gICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyByZWdUMTAgPSBBUk02NFJlZ2lzdGVyczo6eDEwOwotICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgcmVnVDExID0gQVJNNjRSZWdpc3RlcnM6OngxMTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ1QxMiA9IEFSTTY0UmVnaXN0ZXJzOjp4MTI7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBy
ZWdUMTMgPSBBUk02NFJlZ2lzdGVyczo6eDEzOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVn
VDE0ID0gQVJNNjRSZWdpc3RlcnM6OngxNDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Qx
NSA9IEFSTTY0UmVnaXN0ZXJzOjp4MTU7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzAg
PSBBUk02NFJlZ2lzdGVyczo6eDE5OyAvLyBVc2VkIGJ5IEZUTCBvbmx5Ci0gICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdDUzEgPSBBUk02NFJlZ2lzdGVyczo6eDIwOyAvLyBVc2VkIGJ5IEZUTCBv
bmx5Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzIgPSBBUk02NFJlZ2lzdGVyczo6eDIx
OyAvLyBVc2VkIGJ5IEZUTCBvbmx5Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzMgPSBB
Uk02NFJlZ2lzdGVyczo6eDIyOyAvLyBVc2VkIGJ5IEZUTCBvbmx5Ci0gICAgc3RhdGljIGNvbnN0
IEdQUlJlZyByZWdDUzQgPSBBUk02NFJlZ2lzdGVyczo6eDIzOyAvLyBVc2VkIGJ5IEZUTCBvbmx5
Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzUgPSBBUk02NFJlZ2lzdGVyczo6eDI0OyAv
LyBVc2VkIGJ5IEZUTCBvbmx5Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzYgPSBBUk02
NFJlZ2lzdGVyczo6eDI1OyAvLyBVc2VkIGJ5IEZUTCBvbmx5Ci0gICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyByZWdDUzcgPSBBUk02NFJlZ2lzdGVyczo6eDI2OwotICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgcmVnQ1M4ID0gQVJNNjRSZWdpc3RlcnM6OngyNzsgLy8gdGFnVHlwZU51bWJlcgotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1M5ID0gQVJNNjRSZWdpc3RlcnM6OngyODsgLy8gdGFnTWFz
aworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QwID0gQVJNNjRSZWdpc3RlcnM6Ongw
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QxID0gQVJNNjRSZWdpc3RlcnM6Ongx
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QyID0gQVJNNjRSZWdpc3RlcnM6Ongy
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QzID0gQVJNNjRSZWdpc3RlcnM6Ongz
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q0ID0gQVJNNjRSZWdpc3RlcnM6Ong0
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q1ID0gQVJNNjRSZWdpc3RlcnM6Ong1
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q2ID0gQVJNNjRSZWdpc3RlcnM6Ong2
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q3ID0gQVJNNjRSZWdpc3RlcnM6Ong3
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q4ID0gQVJNNjRSZWdpc3RlcnM6Ong4
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q5ID0gQVJNNjRSZWdpc3RlcnM6Ong5
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QxMCA9IEFSTTY0UmVnaXN0ZXJzOjp4
MTA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDExID0gQVJNNjRSZWdpc3RlcnM6
OngxMTsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMTIgPSBBUk02NFJlZ2lzdGVy
czo6eDEyOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QxMyA9IEFSTTY0UmVnaXN0
ZXJzOjp4MTM7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDE0ID0gQVJNNjRSZWdp
c3RlcnM6OngxNDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMTUgPSBBUk02NFJl
Z2lzdGVyczo6eDE1OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTMCA9IEFSTTY0
UmVnaXN0ZXJzOjp4MTk7IC8vIFVzZWQgYnkgRlRMIG9ubHkKKyAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyByZWdDUzEgPSBBUk02NFJlZ2lzdGVyczo6eDIwOyAvLyBVc2VkIGJ5IEZUTCBvbmx5
CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnQ1MyID0gQVJNNjRSZWdpc3RlcnM6Ongy
MTsgLy8gVXNlZCBieSBGVEwgb25seQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NT
MyA9IEFSTTY0UmVnaXN0ZXJzOjp4MjI7IC8vIFVzZWQgYnkgRlRMIG9ubHkKKyAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyByZWdDUzQgPSBBUk02NFJlZ2lzdGVyczo6eDIzOyAvLyBVc2VkIGJ5
IEZUTCBvbmx5CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnQ1M1ID0gQVJNNjRSZWdp
c3RlcnM6OngyNDsgLy8gVXNlZCBieSBGVEwgb25seQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BS
UmVnIHJlZ0NTNiA9IEFSTTY0UmVnaXN0ZXJzOjp4MjU7IC8vIFVzZWQgYnkgRlRMIG9ubHkKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdDUzcgPSBBUk02NFJlZ2lzdGVyczo6eDI2Owor
ICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTOCA9IEFSTTY0UmVnaXN0ZXJzOjp4Mjc7
IC8vIHRhZ1R5cGVOdW1iZXIKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdDUzkgPSBB
Uk02NFJlZ2lzdGVyczo6eDI4OyAvLyB0YWdNYXNrCiAgICAgLy8gVGhlc2UgY29uc3RhbnRzIHBy
b3ZpZGUgdGhlIG5hbWVzIGZvciB0aGUgZ2VuZXJhbCBwdXJwb3NlIGFyZ3VtZW50ICYgcmV0dXJu
IHZhbHVlIHJlZ2lzdGVycy4KLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9
IEFSTTY0UmVnaXN0ZXJzOjp4MDsgLy8gcmVnVDAKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFy
Z3VtZW50R1BSMSA9IEFSTTY0UmVnaXN0ZXJzOjp4MTsgLy8gcmVnVDEKLSAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIGFyZ3VtZW50R1BSMiA9IEFSTTY0UmVnaXN0ZXJzOjp4MjsgLy8gcmVnVDIKLSAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IEFSTTY0UmVnaXN0ZXJzOjp4Mzsg
Ly8gcmVnVDMKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNCA9IEFSTTY0UmVn
aXN0ZXJzOjp4NDsgLy8gcmVnVDQKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BS
NSA9IEFSTTY0UmVnaXN0ZXJzOjp4NTsgLy8gcmVnVDUKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IGFyZ3VtZW50R1BSNiA9IEFSTTY0UmVnaXN0ZXJzOjp4NjsgLy8gcmVnVDYKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNyA9IEFSTTY0UmVnaXN0ZXJzOjp4NzsgLy8gcmVnVDcK
LSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjAgPSBBUk02NFJlZ2lzdGVyczo6eDg7
IC8vIHJlZ1Q4Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25BcmdHUFIxID0gQVJNNjRSZWdp
c3RlcnM6Ong5OyAvLyByZWdUOQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVH
UFIgPSBBUk02NFJlZ2lzdGVyczo6eDA7IC8vIHJlZ1QwCi0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyByZXR1cm5WYWx1ZUdQUjIgPSBBUk02NFJlZ2lzdGVyczo6eDE7IC8vIHJlZ1QxCi0gICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSBBUk02NFJlZ2lzdGVy
czo6eDI7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25Bcmd1bWVudEdQ
UjAgPSBBUk02NFJlZ2lzdGVyczo6eDg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVz
ZXJ2ZWROb25Bcmd1bWVudEdQUjEgPSBBUk02NFJlZ2lzdGVyczo6eDk7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgYXJndW1lbnRHUFIwID0gQVJNNjRSZWdpc3RlcnM6OngwOyAvLyByZWdU
MAorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IEFSTTY0UmVnaXN0
ZXJzOjp4MTsgLy8gcmVnVDEKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQ
UjIgPSBBUk02NFJlZ2lzdGVyczo6eDI7IC8vIHJlZ1QyCisgICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgYXJndW1lbnRHUFIzID0gQVJNNjRSZWdpc3RlcnM6OngzOyAvLyByZWdUMworICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSNCA9IEFSTTY0UmVnaXN0ZXJzOjp4NDsg
Ly8gcmVnVDQKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjUgPSBBUk02
NFJlZ2lzdGVyczo6eDU7IC8vIHJlZ1Q1CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgYXJn
dW1lbnRHUFI2ID0gQVJNNjRSZWdpc3RlcnM6Ong2OyAvLyByZWdUNgorICAgIHN0YXRpYyBjb25z
dGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSNyA9IEFSTTY0UmVnaXN0ZXJzOjp4NzsgLy8gcmVnVDcK
KyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBub25BcmdHUFIwID0gQVJNNjRSZWdpc3RlcnM6
Ong4OyAvLyByZWdUOAorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5vbkFyZ0dQUjEgPSBB
Uk02NFJlZ2lzdGVyczo6eDk7IC8vIHJlZ1Q5CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcg
cmV0dXJuVmFsdWVHUFIgPSBBUk02NFJlZ2lzdGVyczo6eDA7IC8vIHJlZ1QwCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuVmFsdWVHUFIyID0gQVJNNjRSZWdpc3RlcnM6OngxOyAv
LyByZWdUMQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5vblByZXNlcnZlZE5vblJldHVy
bkdQUiA9IEFSTTY0UmVnaXN0ZXJzOjp4MjsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBu
b25QcmVzZXJ2ZWROb25Bcmd1bWVudEdQUjAgPSBBUk02NFJlZ2lzdGVyczo6eDg7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBHUFJSZWcgbm9uUHJlc2VydmVkTm9uQXJndW1lbnRHUFIxID0gQVJNNjRS
ZWdpc3RlcnM6Ong5OwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcGF0Y2hwb2ludFNjcmF0Y2hS
ZWdpc3RlcjsKIAogICAgIC8vIEdQUlJlZyBtYXBwaW5nIGlzIGRpcmVjdCwgdGhlIG1hY2hpbmUg
cmVnaXN0ZXIgbnVtYmVycyBjYW4KQEAgLTcwOSw3ICs3MDksNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiByZXNlcnZlZFJlZ2lzdGVyczsKICAgICB9CiAgICAgCi0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIEludmFsaWRJbmRleCA9IDB4ZmZmZmZmZmY7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBJbnZhbGlkSW5kZXggPSAweGZmZmZmZmZmOwogfTsKIAogI2VuZGlmIC8vIENQ
VShBUk02NCkKQEAgLTcyMSwzNiArNzIxLDM2IEBAIHB1YmxpYzoKIGNsYXNzIEdQUkluZm8gewog
cHVibGljOgogICAgIHR5cGVkZWYgR1BSUmVnIFJlZ2lzdGVyVHlwZTsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSAxMTsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJ
U1RFUlM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9
IDExOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lz
dGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlM7CiAKICAgICAvLyByZWdUMCBtdXN0
IGJlIHYwIGZvciByZXR1cm5pbmcgYSAzMi1iaXQgdmFsdWUuCiAgICAgLy8gcmVnVDEgbXVzdCBi
ZSB2MSBmb3IgcmV0dXJuaW5nIGEgcGFpciBvZiAzMi1iaXQgdmFsdWUuCiAKICAgICAvLyBUZW1w
b3JhcnkgcmVnaXN0ZXJzLgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDAgPSBNSVBTUmVn
aXN0ZXJzOjp2MDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxID0gTUlQU1JlZ2lzdGVy
czo6djE7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMiA9IE1JUFNSZWdpc3RlcnM6OnQy
OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDMgPSBNSVBTUmVnaXN0ZXJzOjp0MzsKLSAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q0ID0gTUlQU1JlZ2lzdGVyczo6dDQ7Ci0gICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyByZWdUNSA9IE1JUFNSZWdpc3RlcnM6OnQ1OwotICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgcmVnVDYgPSBNSVBTUmVnaXN0ZXJzOjp0NjsKLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJlZ1Q3ID0gTUlQU1JlZ2lzdGVyczo6YTA7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyByZWdUOCA9IE1JUFNSZWdpc3RlcnM6OmExOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVn
VDkgPSBNSVBTUmVnaXN0ZXJzOjphMjsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxMCA9
IE1JUFNSZWdpc3RlcnM6OmEzOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QwID0g
TUlQU1JlZ2lzdGVyczo6djA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDEgPSBN
SVBTUmVnaXN0ZXJzOjp2MTsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMiA9IE1J
UFNSZWdpc3RlcnM6OnQyOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QzID0gTUlQ
U1JlZ2lzdGVyczo6dDM7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDQgPSBNSVBT
UmVnaXN0ZXJzOjp0NDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUNSA9IE1JUFNS
ZWdpc3RlcnM6OnQ1OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q2ID0gTUlQU1Jl
Z2lzdGVyczo6dDY7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDcgPSBNSVBTUmVn
aXN0ZXJzOjphMDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUOCA9IE1JUFNSZWdp
c3RlcnM6OmExOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q5ID0gTUlQU1JlZ2lz
dGVyczo6YTI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDEwID0gTUlQU1JlZ2lz
dGVyczo6YTM7CiAgICAgLy8gVGhlc2UgcmVnaXN0ZXJzIG1hdGNoIHRoZSBiYXNlbGluZSBKSVQu
Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IE1JUFNSZWdpc3Rl
cnM6OmZwOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0g
TUlQU1JlZ2lzdGVyczo6ZnA7CiAgICAgLy8gVGhlc2UgY29uc3RhbnRzIHByb3ZpZGUgdGhlIG5h
bWVzIGZvciB0aGUgZ2VuZXJhbCBwdXJwb3NlIGFyZ3VtZW50ICYgcmV0dXJuIHZhbHVlIHJlZ2lz
dGVycy4KLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IE1JUFNSZWdpc3Rl
cnM6OmEwOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIxID0gTUlQU1JlZ2lz
dGVyczo6YTE7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjIgPSBNSVBTUmVn
aXN0ZXJzOjphMjsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IE1JUFNS
ZWdpc3RlcnM6OmEzOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMCA9IHJlZ1Q0
OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSByZWdUMDsKLSAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIHJldHVyblZhbHVlR1BSMiA9IHJlZ1QxOwotICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgbm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSID0gcmVnVDI7Ci0gICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyByZWdDUzAgPSBNSVBTUmVnaXN0ZXJzOjpzMDsKKyAgICBzdGF0aWMgY29u
c3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjAgPSBNSVBTUmVnaXN0ZXJzOjphMDsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjEgPSBNSVBTUmVnaXN0ZXJzOjphMTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjIgPSBNSVBTUmVnaXN0ZXJzOjph
MjsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjMgPSBNSVBTUmVnaXN0
ZXJzOjphMzsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBub25BcmdHUFIwID0gcmVnVDQ7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSByZWdUMDsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSByZWdUMTsKKyAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSByZWdUMjsK
KyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdDUzAgPSBNSVBTUmVnaXN0ZXJzOjpzMDsK
IAogICAgIHN0YXRpYyBHUFJSZWcgdG9SZWdpc3Rlcih1bnNpZ25lZCBpbmRleCkKICAgICB7CkBA
IC03ODYsNyArNzg2LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6
Omdwck5hbWUocmVnKTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW52YWxp
ZEluZGV4ID0gMHhmZmZmZmZmZjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEludmFs
aWRJbmRleCA9IDB4ZmZmZmZmZmY7CiB9OwogCiAjZW5kaWYgLy8gQ1BVKE1JUFMpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0lDU3RhdHMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0lDU3RhdHMuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9JQ1N0YXRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTYzLDcgKzE2Myw3
IEBAIHByaXZhdGU6CiBzdHJ1Y3QgSUNFdmVudEhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBo
YXNoKGNvbnN0IElDRXZlbnQmIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRp
YyBib29sIGVxdWFsKGNvbnN0IElDRXZlbnQmIGEsIGNvbnN0IElDRXZlbnQmIGIpIHsgcmV0dXJu
IGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JE
ZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkBAIC0xNzks
NyArMTc5LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpJQ0V2ZQogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0
IEhhc2hUcmFpdHM8SlNDOjpJQ0V2ZW50PiA6IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxKU0M6OklD
RXZlbnQ+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRUaHVua3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRo
dW5rcy5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFRodW5rcy5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw3ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIHsKICAgICAgICAgICAgIHJldHVybiAoc3RkOjpnZXQ8MD4oYSkgPT0gc3RkOjpnZXQ8MD4o
YikpICYmIChzdGQ6OmdldDwxPihhKSA9PSBzdGQ6OmdldDwxPihiKSkgJiYgKHN0ZDo6Z2V0PDI+
KGEpID09IHN0ZDo6Z2V0PDI+KGIpKTsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiAK
ICAgICBwcml2YXRlOgogICAgICAgICBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGhhc2hQb2ludGVy
KFRhZ2dlZE5hdGl2ZUZ1bmN0aW9uIHApCkBAIC05Nyw3ICs5Nyw3IEBAIHByaXZhdGU6CiAgICAg
fTsKIAogICAgIHN0cnVjdCBIb3N0RnVuY3Rpb25IYXNoVHJhaXQgOiBXVEY6OkdlbmVyaWNIYXNo
VHJhaXRzPEhvc3RGdW5jdGlvbktleT4gewotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0
eVZhbHVlSXNaZXJvID0gdHJ1ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5
VmFsdWVJc1plcm8gPSB0cnVlOwogICAgICAgICBzdGF0aWMgRW1wdHlWYWx1ZVR5cGUgZW1wdHlW
YWx1ZSgpIHsgcmV0dXJuIHN0ZDo6bWFrZV90dXBsZShudWxscHRyLCBudWxscHRyLCBTdHJpbmco
KSk7IH0KIAogICAgICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoSG9zdEZ1
bmN0aW9uS2V5JiBzbG90KSB7IHN0ZDo6Z2V0PDA+KHNsb3QpID0gVGFnZ2VkTmF0aXZlRnVuY3Rp
b24oLTEpOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJKHJldmlzaW9uIDI0OTk1OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjI2LDcgKzIyNiw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgUmVnSGFzaCB7CiAgICAgc3RhdGljIHVu
c2lnbmVkIGhhc2goY29uc3QgUmVnJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBz
dGF0aWMgYm9vbCBlcXVhbChjb25zdCBSZWcmIGEsIGNvbnN0IFJlZyYgYikgeyByZXR1cm4gYSA9
PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0
eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKQEAgLTI0MCw3ICsy
NDAsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxKU0M6OlJlZz4gCiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFz
aFRyYWl0czxKU0M6OlJlZz4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpSZWc+IHsKLSAg
ICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKICB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmgJ
KHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJT
ZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIyMCwxMCArMjIwLDEwIEBAIHByaXZhdGU6CiAgICAg
fQogCiAgICAgLy8gVGhlc2Ugb2Zmc2V0cyBtaXJyb3IgdGhlIGxvZ2ljIGluIFJlZy5oLgotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBncHJPZmZzZXQgPSAwOwotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBmcHJPZmZzZXQgPSBncHJPZmZzZXQgKyBNYWNyb0Fzc2VtYmxlcjo6bnVtR1BSczsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaGFzaFNwZWNpYWxCaXRJbmRleCA9IGZwck9mZnNl
dCArIE1hY3JvQXNzZW1ibGVyOjpudW1GUFJzOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBk
ZWxldGVkQml0SW5kZXggPSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZ3ByT2Zm
c2V0ID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGZwck9mZnNldCA9IGdwck9m
ZnNldCArIE1hY3JvQXNzZW1ibGVyOjpudW1HUFJzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgaGFzaFNwZWNpYWxCaXRJbmRleCA9IGZwck9mZnNldCArIE1hY3JvQXNzZW1ibGVyOjpu
dW1GUFJzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZGVsZXRlZEJpdEluZGV4ID0g
MDsKICAgICAKICAgICBSZWdpc3RlckJpdG1hcCBtX2JpdHM7CiB9OwpAQCAtMjMxLDcgKzIzMSw3
IEBAIHByaXZhdGU6CiBzdHJ1Y3QgUmVnaXN0ZXJTZXRIYXNoIHsKICAgICBzdGF0aWMgdW5zaWdu
ZWQgaGFzaChjb25zdCBSZWdpc3RlclNldCYgc2V0KSB7IHJldHVybiBzZXQuaGFzaCgpOyB9CiAg
ICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgUmVnaXN0ZXJTZXQmIGEsIGNvbnN0IFJlZ2lzdGVy
U2V0JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9D
b21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RlbXBSZWdpc3RlclNl
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGVtcFJlZ2lzdGVy
U2V0LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGVt
cFJlZ2lzdGVyU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5NCwxMCArMTk0LDEwIEBAIHByaXZh
dGU6CiAgICAgICAgIHJldHVybiAhIShtX3NldFtpID4+IDNdICYgKDEgPDwgKGkgJiA3KSkpOwog
ICAgIH0KICAgICAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdG90YWxOdW1iZXJPZlJlZ2lz
dGVycyA9CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB0b3RhbE51bWJlck9mUmVnaXN0
ZXJzID0KICAgICAgICAgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJbmZvOjpudW1i
ZXJPZlJlZ2lzdGVyczsKICAgICAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZC
eXRlc0luVGVtcFJlZ2lzdGVyU2V0ID0KKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51
bWJlck9mQnl0ZXNJblRlbXBSZWdpc3RlclNldCA9CiAgICAgICAgICh0b3RhbE51bWJlck9mUmVn
aXN0ZXJzICsgNykgPj4gMzsKIAogICAgIHVpbnQ4X3QgbV9zZXRbbnVtYmVyT2ZCeXRlc0luVGVt
cFJlZ2lzdGVyU2V0XTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVp
bGRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVp
bGRlci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L0FTVEJ1aWxkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDExICsxMjIsMTEgQEAgcHVibGlj
OgogICAgIHR5cGVkZWYgT2JqZWN0UGF0dGVybk5vZGUqIE9iamVjdFBhdHRlcm47CiAgICAgdHlw
ZWRlZiBCaW5kaW5nTm9kZSogQmluZGluZ1BhdHRlcm47CiAgICAgdHlwZWRlZiBBc3NpZ25tZW50
RWxlbWVudE5vZGUqIEFzc2lnbm1lbnRFbGVtZW50OwotICAgIHN0YXRpYyBjb25zdCBib29sIENy
ZWF0ZXNBU1QgPSB0cnVlOwotICAgIHN0YXRpYyBjb25zdCBib29sIE5lZWRzRnJlZVZhcmlhYmxl
SW5mbyA9IHRydWU7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgQ2FuVXNlRnVuY3Rpb25DYWNoZSA9
IHRydWU7Ci0gICAgc3RhdGljIGNvbnN0IGludCAgRG9udEJ1aWxkS2V5d29yZHMgPSAwOwotICAg
IHN0YXRpYyBjb25zdCBpbnQgIERvbnRCdWlsZFN0cmluZ3MgPSAwOworICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBDcmVhdGVzQVNUID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
TmVlZHNGcmVlVmFyaWFibGVJbmZvID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
Q2FuVXNlRnVuY3Rpb25DYWNoZSA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgIERv
bnRCdWlsZEtleXdvcmRzID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIGludCAgRG9udEJ1aWxk
U3RyaW5ncyA9IDA7CiAKICAgICBFeHByZXNzaW9uTm9kZSogbWFrZUJpbmFyeU5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiwgaW50IHRva2VuLCBzdGQ6OnBhaXI8RXhwcmVzc2lvbk5vZGUqLCBC
aW5hcnlPcEluZm8+LCBzdGQ6OnBhaXI8RXhwcmVzc2lvbk5vZGUqLCBCaW5hcnlPcEluZm8+KTsK
ICAgICBFeHByZXNzaW9uTm9kZSogbWFrZUZ1bmN0aW9uQ2FsbE5vZGUoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGZ1bmMsIGJvb2wgcHJldmlvdXNCYXNlV2FzU3VwZXIs
IEFyZ3VtZW50c05vZGUqIGFyZ3MsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVu
ZCwgc2l6ZV90IGNhbGxPckFwcGx5Q2hpbGREZXB0aCwgYm9vbCBpc09wdGlvbmFsQ2FsbCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCShyZXZpc2lvbiAyNDk5NTkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNyArMSw3IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRl
biAocG9ydGVuQGtkZS5vcmcpCiAgKiAgQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5IChw
bWtAcG9zdC5jb20pCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMy0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQ2FtZXJvbiBad2Fy
aWNoIChjd3p3YXJpY2hAdXdhdGVybG9vLmNhKQogICogIENvcHlyaWdodCAoQykgMjAwNyBNYWtz
IE9ybG92aWNoCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtp
dC5vcmc+CkBAIC0xODQ0LDcgKzE4NDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdW5z
aWduZWQgc3RhcnRDb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0Q29sdW1uOyB9CiAgICAg
ICAgIHVuc2lnbmVkIGVuZENvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fZW5kQ29sdW1uOyB9CiAK
LSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2NvcGVJc0Z1bmN0aW9uID0gZmFsc2U7CisgICAg
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzY29wZUlzRnVuY3Rpb24gPSBmYWxzZTsKIAogICAg
IHByaXZhdGU6CiAgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKQEAgLTE4NTksNyArMTg1OSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIHN0YXJ0Q29sdW1uKCkgY29u
c3QgeyByZXR1cm4gMDsgfQogICAgICAgICB1bnNpZ25lZCBlbmRDb2x1bW4oKSBjb25zdCB7IHJl
dHVybiBtX2VuZENvbHVtbjsgfQogCi0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNjb3BlSXNG
dW5jdGlvbiA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2NvcGVJc0Z1
bmN0aW9uID0gZmFsc2U7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CkBAIC0xODc0
LDcgKzE4NzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdW5zaWduZWQgc3RhcnRDb2x1
bW4oKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0Q29sdW1uOyB9CiAgICAgICAgIHVuc2lnbmVkIGVu
ZENvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fZW5kQ29sdW1uOyB9CiAKLSAgICAgICAgc3RhdGlj
IGNvbnN0IGJvb2wgc2NvcGVJc0Z1bmN0aW9uID0gZmFsc2U7CisgICAgICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBzY29wZUlzRnVuY3Rpb24gPSBmYWxzZTsKIAogICAgICAgICBNb2R1bGVTY29w
ZURhdGEmIG1vZHVsZVNjb3BlRGF0YSgpCiAgICAgICAgIHsKQEAgLTIxMzEsNyArMjEzMSw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICB1bnNpZ25lZCBzdGFydENvbHVtbigpIGNvbnN0IHsg
cmV0dXJuIG1fc3RhcnRDb2x1bW47IH0KICAgICAgICAgdW5zaWduZWQgZW5kQ29sdW1uKCkgY29u
c3QgeyByZXR1cm4gbV9lbmRDb2x1bW47IH0KIAotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBz
Y29wZUlzRnVuY3Rpb24gPSB0cnVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2Nv
cGVJc0Z1bmN0aW9uID0gdHJ1ZTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIElkZW50aWZpZXIg
bV9pZGVudDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtl
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29k
ZUtleS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1NvdXJjZUNvZGVLZXkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKQEAgLTEyNywxMSArMTI3LDExIEBAIHB1YmxpYzoKICAgICBzdHJ1
Y3QgSGFzaCB7CiAgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFNvdXJjZUNvZGVL
ZXkmIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBlcXVh
bChjb25zdCBTb3VyY2VDb2RlS2V5JiBhLCBjb25zdCBTb3VyY2VDb2RlS2V5JiBiKSB7IHJldHVy
biBhID09IGI7IH0KLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1w
dHlPckRlbGV0ZWQgPSBmYWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVU
b0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CiAgICAgfTsKIAogICAgIHN0cnVjdCBI
YXNoVHJhaXRzIDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPFNvdXJjZUNvZGVLZXk+IHsKLSAgICAg
ICAgc3RhdGljIGNvbnN0IGJvb2wgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gPSB0cnVlOworICAg
ICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gPSB0cnVl
OwogICAgICAgICBzdGF0aWMgYm9vbCBpc0VtcHR5VmFsdWUoY29uc3QgU291cmNlQ29kZUtleSYg
a2V5KSB7IHJldHVybiBrZXkuaXNOdWxsKCk7IH0KICAgICB9OwogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAkocmV2aXNpb24gMjQ5OTU5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE0MCwxMSArMTQwLDExIEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIERlc3RydWN0
dXJpbmdQYXR0ZXJuIE9iamVjdFBhdHRlcm47CiAgICAgdHlwZWRlZiBEZXN0cnVjdHVyaW5nUGF0
dGVybiBSZXN0UGF0dGVybjsKIAotICAgIHN0YXRpYyBjb25zdCBib29sIENyZWF0ZXNBU1QgPSBm
YWxzZTsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBOZWVkc0ZyZWVWYXJpYWJsZUluZm8gPSBmYWxz
ZTsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBDYW5Vc2VGdW5jdGlvbkNhY2hlID0gdHJ1ZTsKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgRG9udEJ1aWxkS2V5d29yZHMgPSBMZXhleEZsYWdzRG9u
dEJ1aWxkS2V5d29yZHM7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIERvbnRCdWlsZFN0cmlu
Z3MgPSBMZXhlckZsYWdzRG9udEJ1aWxkU3RyaW5nczsKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgQ3JlYXRlc0FTVCA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBOZWVkc0Zy
ZWVWYXJpYWJsZUluZm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgQ2FuVXNl
RnVuY3Rpb25DYWNoZSA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBEb250
QnVpbGRLZXl3b3JkcyA9IExleGV4RmxhZ3NEb250QnVpbGRLZXl3b3JkczsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIERvbnRCdWlsZFN0cmluZ3MgPSBMZXhlckZsYWdzRG9udEJ1aWxk
U3RyaW5nczsKIAogICAgIGludCBjcmVhdGVTb3VyY2VFbGVtZW50cygpIHsgcmV0dXJuIFNvdXJj
ZUVsZW1lbnRzUmVzdWx0OyB9CiAgICAgRXhwcmVzc2lvblR5cGUgbWFrZUZ1bmN0aW9uQ2FsbE5v
ZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvblR5cGUsIGJvb2wsIGludCwgaW50
LCBpbnQsIGludCwgc2l6ZV90LCBib29sKSB7IHJldHVybiBDYWxsRXhwcjsgfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgJ
KHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFi
bGVFbnZpcm9ubWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKIH07
CiAKIHN0cnVjdCBWYXJpYWJsZUVudmlyb25tZW50RW50cnlIYXNoVHJhaXRzIDogSGFzaFRyYWl0
czxWYXJpYWJsZUVudmlyb25tZW50RW50cnk+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVk
c0Rlc3RydWN0aW9uID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVz
dHJ1Y3Rpb24gPSBmYWxzZTsKIH07CiAKIGNsYXNzIFZhcmlhYmxlRW52aXJvbm1lbnQgewpAQCAt
MTU4LDcgKzE1OCw3IEBAIHN0cnVjdCBDb21wYWN0VmFyaWFibGVNYXBLZXkgewogCiAgICAgc3Rh
dGljIHVuc2lnbmVkIGhhc2goY29uc3QgQ29tcGFjdFZhcmlhYmxlTWFwS2V5JiBrZXkpIHsgcmV0
dXJuIGtleS5tX2Vudmlyb25tZW50LT5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChj
b25zdCBDb21wYWN0VmFyaWFibGVNYXBLZXkmIGEsIGNvbnN0IENvbXBhY3RWYXJpYWJsZU1hcEtl
eSYgYikgeyByZXR1cm4gKmEubV9lbnZpcm9ubWVudCA9PSAqYi5tX2Vudmlyb25tZW50OyB9Ci0g
ICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxz
ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSBmYWxzZTsKICAgICBzdGF0aWMgdm9pZCBtYWtlRGVsZXRlZFZhbHVlKENvbXBhY3RWYXJp
YWJsZU1hcEtleSYga2V5KQogICAgIHsKICAgICAgICAga2V5Lm1fZW52aXJvbm1lbnQgPSByZWlu
dGVycHJldF9jYXN0PENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50Kj4oMSk7CkBAIC0xOTMsMTAg
KzE5MywxMCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxKU0M6OkNvbXBhCiB9Owog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPEpTQzo6Q29tcGFjdFZhcmlhYmxlTWFwS2V5
PiA6IEdlbmVyaWNIYXNoVHJhaXRzPEpTQzo6Q29tcGFjdFZhcmlhYmxlTWFwS2V5PiB7Ci0gICAg
c3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOwogICAgIHN0YXRpYyBKU0M6OkNv
bXBhY3RWYXJpYWJsZU1hcEtleSBlbXB0eVZhbHVlKCkgeyByZXR1cm4gSlNDOjpDb21wYWN0VmFy
aWFibGVNYXBLZXkoKTsgfQogCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgaGFzSXNFbXB0eVZhbHVl
RnVuY3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBoYXNJc0VtcHR5VmFs
dWVGdW5jdGlvbiA9IHRydWU7CiAgICAgc3RhdGljIGJvb2wgaXNFbXB0eVZhbHVlKEpTQzo6Q29t
cGFjdFZhcmlhYmxlTWFwS2V5IGtleSkgeyByZXR1cm4ga2V5LmlzSGFzaFRhYmxlRW1wdHlWYWx1
ZSgpOyB9CiAKICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoSlNDOjpDb21w
YWN0VmFyaWFibGVNYXBLZXkmIGtleSkgeyBKU0M6OkNvbXBhY3RWYXJpYWJsZU1hcEtleTo6bWFr
ZURlbGV0ZWRWYWx1ZShrZXkpOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJPcmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZXJPcmlnaW4uaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTcs
NyArOTcsNyBAQCBpbmxpbmUgYm9vbCBPcmlnaW46OmlzSGFzaFRhYmxlRGVsZXRlZFZhCiBzdHJ1
Y3QgT3JpZ2luSGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgT3JpZ2luJiBr
ZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBP
cmlnaW4mIGEsIGNvbnN0IE9yaWdpbiYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGlj
IGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7
CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6UHJvZmlsZXIKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luU3RhY2suaAkocmV2
aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
T3JpZ2luU3RhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03OSw3ICs3OSw3IEBAIGlubGluZSBib29sIE9y
aWdpblN0YWNrOjppc0hhc2hUYWJsZURlbGUKIHN0cnVjdCBPcmlnaW5TdGFja0hhc2ggewogICAg
IHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IE9yaWdpblN0YWNrJiBrZXkpIHsgcmV0dXJuIGtl
eS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBPcmlnaW5TdGFjayYgYSwg
Y29uc3QgT3JpZ2luU3RhY2smIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25z
dCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsK
IAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OlByb2ZpbGVyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZXJVSUQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJVSUQuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyVUlELmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
OTEsNyArOTEsNyBAQCBwcml2YXRlOgogc3RydWN0IFVJREhhc2ggewogICAgIHN0YXRpYyB1bnNp
Z25lZCBoYXNoKGNvbnN0IFVJRCYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3Rh
dGljIGJvb2wgZXF1YWwoY29uc3QgVUlEJiBhLCBjb25zdCBVSUQmIGIpIHsgcmV0dXJuIGEgPT0g
YjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlP
ckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OlByb2ZpbGVyCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BYnN0cmFjdE1vZHVsZVJlY29yZC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWJzdHJhY3RN
b2R1bGVSZWNvcmQuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BYnN0cmFjdE1vZHVsZVJlY29yZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5
LDcgKzM5LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgQWJzdHJhY3RNb2R1bGVS
ZWNvcmRJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0
aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfSAvLyBuYW1lc3BhY2UgQWJzdHJh
Y3RNb2R1bGVSZWNvcmRJbnRlcm5hbAogCiBjb25zdCBDbGFzc0luZm8gQWJzdHJhY3RNb2R1bGVS
ZWNvcmQ6OnNfaW5mbyA9IHsgIkFic3RyYWN0TW9kdWxlUmVjb3JkIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShBYnN0cmFjdE1vZHVsZVJlY29y
ZCkgfTsKQEAgLTE3Myw3ICsxNzMsNyBAQCBzdHJ1Y3QgQWJzdHJhY3RNb2R1bGVSZWNvcmQ6OlJl
c29sdmVRdWVyCiAgICAgc3RydWN0IEhhc2ggewogICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFz
aChjb25zdCBSZXNvbHZlUXVlcnkmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3Qg
UmVzb2x2ZVF1ZXJ5JiwgY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7Ci0gICAgICAgIHN0YXRpYyBjb25z
dCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICAgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsK
ICAgICB9OwogICAgIHVzaW5nIEhhc2hUcmFpdHMgPSBXVEY6OkN1c3RvbUhhc2hUcmFpdHM8UmVz
b2x2ZVF1ZXJ5PjsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlC
dWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50U2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50U2V0LmgJKHJl
dmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVm
ZmVyTmV1dGVyaW5nV2F0Y2hwb2ludFNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDEzICszMywxMyBA
QCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEFycmF5QnVmZmVyTmV1dGVyaW5nV2F0Y2hwb2ludFNl
dCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNDZWxsIEJh
c2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVy
ZUlzSW1tb3J0YWw7CiAKICAgICBERUNMQVJFX0lORk87CiAgICAgCiAgICAgc3RhdGljIEFycmF5
QnVmZmVyTmV1dGVyaW5nV2F0Y2hwb2ludFNldCogY3JlYXRlKFZNJik7CiAKLSAgICBzdGF0aWMg
Y29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShK
U0NlbGwqKTsKICAgICAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0m
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0
cnVjdG9yLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5Q29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8q
CiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9y
ZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCwgMjAxMSwgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsNyArMzMs
NyBAQCBjbGFzcyBHZXR0ZXJTZXR0ZXI7CiBjbGFzcyBBcnJheUNvbnN0cnVjdG9yIGZpbmFsIDog
cHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxG
dW5jdGlvbiBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEFycmF5Q29uc3RydWN0
b3IqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBBcnJheVByb3RvdHlwZSogYXJyYXlQcm90b3R5cGUsIEdldHRlclNldHRl
ciogc3BlY2llc1N5bWJvbCkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheUNvbnZlbnRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlDb252ZW50aW9ucy5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnZlbnRpb25zLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTkxLDcgKzkxLDcgQEAgc3RhdGljX2Fzc2VydChNQVhfU1RPUkFHRV9WRUNUT1JfSU5E
RVggPAogLy8gRm9yIGFsbCBhcnJheSBpbmRpY2VzIHVuZGVyIE1JTl9TUEFSU0VfQVJSQVlfSU5E
RVgsIHdlIGFsd2F5cyB1c2UgYSB2ZWN0b3IuCiAvLyBXaGVuIGluZGljZXMgZ3JlYXRlciB0aGFu
IE1JTl9TUEFSU0VfQVJSQVlfSU5ERVggYXJlIGludm9sdmVkLCB3ZSB1c2UgYSB2ZWN0b3IKIC8v
IGFzIGxvbmcgYXMgaXQgaXMgMS84IGZ1bGwuIElmIG1vcmUgc3BhcnNlIHRoYW4gdGhhdCwgd2Ug
dXNlIGEgbWFwLgotc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1pbkRlbnNpdHlNdWx0aXBsaWVyID0g
ODsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWluRGVuc2l0eU11bHRpcGxpZXIgPSA4Owog
CiBpbmxpbmUgYm9vbCBpc0RlbnNlRW5vdWdoRm9yVmVjdG9yKHVuc2lnbmVkIGxlbmd0aCwgdW5z
aWduZWQgbnVtVmFsdWVzKQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlJdGVyYXRvclByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTU5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
LTIwMTkgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEFy
cmF5SXRlcmF0b3JQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBw
dWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNT
dGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7
CiAKICAgICBzdGF0aWMgQXJyYXlJdGVyYXRvclByb3RvdHlwZSogY3JlYXRlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBl
LmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlQcm90b3R5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNyArMTc1LDcgQEAgc3Rh
dGljIEFMV0FZU19JTkxJTkUgYm9vbCBwdXRMZW5ndGgoRXhlYwogc3RhdGljIEFMV0FZU19JTkxJ
TkUgdm9pZCBzZXRMZW5ndGgoRXhlY1N0YXRlKiBleGVjLCBWTSYgdm0sIEpTT2JqZWN0KiBvYmos
IHVuc2lnbmVkIHZhbHVlKQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB0aHJvd0V4Y2VwdGlvbiA9IHRydWU7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIHRocm93RXhjZXB0aW9uID0gdHJ1ZTsKICAgICBpZiAoaXNK
U0FycmF5KG9iaikpIHsKICAgICAgICAganNDYXN0PEpTQXJyYXkqPihvYmopLT5zZXRMZW5ndGgo
ZXhlYywgdmFsdWUsIHRocm93RXhjZXB0aW9uKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgdm9pZCgpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fz
eW5jRnJvbVN5bmNJdGVyYXRvclByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnJvbVN5bmNJdGVyYXRvclByb3RvdHlwZS5oCShyZXZp
c2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Zyb21T
eW5jSXRlcmF0b3JQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgT2xla3NhbmRyIFNrYWNoa292IDxnc2thY2hrb3ZAZ21h
aWwuY29tPi4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IE9sZWtzYW5kciBTa2FjaGtvdiA8
Z3NrYWNoa292QGdtYWlsLmNvbT4uCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBBc3luY0Zyb21TeW5jSXRlcmF0
b3JQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAg
ICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBE
RUNMQVJFX0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5j
R2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmgJKHJldmlz
aW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJh
dG9yRnVuY3Rpb25Qcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgT2xla3NhbmRyIFNrYWNoa292IDxnc2thY2hrb3ZAZ21h
aWwuY29tPi4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IE9sZWtzYW5kciBTa2FjaGtvdiA8
Z3NrYWNoa292QGdtYWlsLmNvbT4uCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBBc3luY0dlbmVyYXRvckZ1bmN0
aW9uUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgog
ICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0OwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJv
cGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAg
REVDTEFSRV9JTkZPOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3lu
Y0dlbmVyYXRvclByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk1OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yUHJvdG90eXBlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE3
IE9sZWtzYW5kciBTa2FjaGtvdiA8Z3NrYWNoa292QGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3Mg
QXN5bmNHZW5lcmF0b3JQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7
CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBI
YXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFi
bGU7CiAKICAgICBzdGF0aWMgQXN5bmNHZW5lcmF0b3JQcm90b3R5cGUqIGNyZWF0ZShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNJdGVyYXRvclByb3RvdHlwZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jSXRlcmF0b3JQcm90
b3R5cGUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXN5bmNJdGVyYXRvclByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNyBPbGVrc2FuZHIgU2thY2hrb3YgPGdza2FjaGtv
dkBnbWFpbC5jb20+LgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNyArMzMs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEFzeW5jSXRlcmF0b3JQcm90b3R5cGUgZmluYWwg
OiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpT
Tm9uRmluYWxPYmplY3Q7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgc3RhdGljIEFzeW5j
SXRlcmF0b3JQcm90b3R5cGUqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3QuY3BwCShyZXZpc2lvbiAyNDk5NTkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BdG9taWNzT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTk1LDcgKzE5NSw3IEBAIEVuY29kZWRKU1ZhbHVlIGF0b21pY09wZXJh
dGlvbldpdGhBcmdzKEUKIH0KIAogc3RydWN0IEFkZEZ1bmMgewotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBudW1FeHRyYUFyZ3MgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
bnVtRXh0cmFBcmdzID0gMTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIEpT
VmFsdWUgb3BlcmF0b3IoKShUKiBwdHIsIGNvbnN0IGRvdWJsZSogYXJncykgY29uc3QKQEAgLTIw
NSw3ICsyMDUsNyBAQCBzdHJ1Y3QgQWRkRnVuYyB7CiB9OwogCiBzdHJ1Y3QgQW5kRnVuYyB7Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUV4dHJhQXJncyA9IDE7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBudW1FeHRyYUFyZ3MgPSAxOwogICAgIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+CiAgICAgSlNWYWx1ZSBvcGVyYXRvcigpKFQqIHB0ciwgY29uc3QgZG91YmxlKiBh
cmdzKSBjb25zdApAQCAtMjE1LDcgKzIxNSw3IEBAIHN0cnVjdCBBbmRGdW5jIHsKIH07CiAKIHN0
cnVjdCBDb21wYXJlRXhjaGFuZ2VGdW5jIHsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVt
RXh0cmFBcmdzID0gMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUV4dHJhQXJn
cyA9IDI7CiAgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKU1ZhbHVlIG9wZXJh
dG9yKCkoVCogcHRyLCBjb25zdCBkb3VibGUqIGFyZ3MpIGNvbnN0CkBAIC0yMjcsNyArMjI3LDcg
QEAgc3RydWN0IENvbXBhcmVFeGNoYW5nZUZ1bmMgewogfTsKIAogc3RydWN0IEV4Y2hhbmdlRnVu
YyB7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUV4dHJhQXJncyA9IDE7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1FeHRyYUFyZ3MgPSAxOwogICAgIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CiAgICAgSlNWYWx1ZSBvcGVyYXRvcigpKFQqIHB0ciwgY29uc3QgZG91
YmxlKiBhcmdzKSBjb25zdApAQCAtMjM3LDcgKzIzNyw3IEBAIHN0cnVjdCBFeGNoYW5nZUZ1bmMg
ewogfTsKIAogc3RydWN0IExvYWRGdW5jIHsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVt
RXh0cmFBcmdzID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUV4dHJhQXJn
cyA9IDA7CiAgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKU1ZhbHVlIG9wZXJh
dG9yKCkoVCogcHRyLCBjb25zdCBkb3VibGUqKSBjb25zdApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHN0
cnVjdCBMb2FkRnVuYyB7CiB9OwogCiBzdHJ1Y3QgT3JGdW5jIHsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbnVtRXh0cmFBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IG51bUV4dHJhQXJncyA9IDE7CiAgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBK
U1ZhbHVlIG9wZXJhdG9yKCkoVCogcHRyLCBjb25zdCBkb3VibGUqIGFyZ3MpIGNvbnN0CkBAIC0y
NTcsNyArMjU3LDcgQEAgc3RydWN0IE9yRnVuYyB7CiB9OwogCiBzdHJ1Y3QgU3RvcmVGdW5jIHsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtRXh0cmFBcmdzID0gMTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIG51bUV4dHJhQXJncyA9IDE7CiAgICAgCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4KICAgICBKU1ZhbHVlIG9wZXJhdG9yKCkoVCogcHRyLCBjb25zdCBkb3VibGUq
IGFyZ3MpIGNvbnN0CkBAIC0yNzAsNyArMjcwLDcgQEAgc3RydWN0IFN0b3JlRnVuYyB7CiB9Owog
CiBzdHJ1Y3QgU3ViRnVuYyB7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUV4dHJhQXJn
cyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1FeHRyYUFyZ3MgPSAxOwog
ICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgSlNWYWx1ZSBvcGVyYXRvcigpKFQq
IHB0ciwgY29uc3QgZG91YmxlKiBhcmdzKSBjb25zdApAQCAtMjgwLDcgKzI4MCw3IEBAIHN0cnVj
dCBTdWJGdW5jIHsKIH07CiAKIHN0cnVjdCBYb3JGdW5jIHsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgbnVtRXh0cmFBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51
bUV4dHJhQXJncyA9IDE7CiAgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKU1Zh
bHVlIG9wZXJhdG9yKCkoVCogcHRyLCBjb25zdCBkb3VibGUqIGFyZ3MpIGNvbnN0CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CaWdJbnRDb25zdHJ1Y3Rvci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludENvbnN0cnVjdG9yLmgJ
KHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0lu
dENvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDE3IENhaW8gTGltYSA8dGljYWlvbGltYUBnbWFpbC5jb20+Ci0gKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE3LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEdldHRlclNl
dHRlcjsKIGNsYXNzIEJpZ0ludENvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBJbnRlcm5hbEZ1bmN0aW9uOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEJpZ0ludENvbnN0cnVjdG9yKiBjcmVhdGUoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQmlnSW50UHJvdG90eXBlKiBiaWdJbnRQcm90b3R5cGUs
IEdldHRlclNldHRlciopCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQmlnSW50UHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQmlnSW50UHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludFByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNyBDYWlvIExpbWEgPHRpY2Fp
b2xpbWFAZ21haWwuY29tPi4KLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMz
LDcgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBCaWdJbnRQcm90b3R5cGUgZmluYWwg
OiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpT
Tm9uRmluYWxPYmplY3Q7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgQmlnSW50UHJvdG90
eXBlKiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBv
cnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0y
Nyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQm9vbGVhblByb3RvdHlwZSBmaW5h
bCA6IHB1YmxpYyBCb29sZWFuT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEJvb2xlYW5P
YmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBCb29sZWFuUHJvdG90eXBl
KiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
bG9uZWRBcmd1bWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9DbG9uZWRBcmd1bWVudHMuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00
MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQ2xvbmVkQXJndW1lbnRzIGZpbmFs
IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25G
aW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogICAgIAogcHJpdmF0ZToK
ICAgICBDbG9uZWRBcmd1bWVudHMoVk0mLCBTdHJ1Y3R1cmUqLCBCdXR0ZXJmbHkqKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCShyZXZpc2lvbiAyNDk5
NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBjbGFzcyBWTTsKIGNsYXNzIFZhcmlhYmxlRW52aXJv
bm1lbnQ7CiAKIG5hbWVzcGFjZSBDb2RlQ2FjaGVJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9v
bCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNl
OwogfSAvLyBuYW1lc3BhY2UgQ29kZUNhY2hlSW50ZXJuYWwKIAogc3RydWN0IFNvdXJjZUNvZGVW
YWx1ZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db250cm9sRmxvd1By
b2ZpbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29u
dHJvbEZsb3dQcm9maWxlci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxNCBTYWFtIEJhcmF0aS4gPHNhYW1i
YXJhdGkxQGdtYWlsLmNvbT4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTYwLDcgKzYwLDcgQEAgc3Ry
dWN0IEJhc2ljQmxvY2tLZXkgewogc3RydWN0IEJhc2ljQmxvY2tLZXlIYXNoIHsKICAgICBzdGF0
aWMgdW5zaWduZWQgaGFzaChjb25zdCBCYXNpY0Jsb2NrS2V5JiBrZXkpIHsgcmV0dXJuIGtleS5o
YXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBCYXNpY0Jsb2NrS2V5JiBhLCBj
b25zdCBCYXNpY0Jsb2NrS2V5JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29u
c3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpAQCAtNzQsNyArNzQsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBEZWZhdWx0SGFzaDxKU0M6OkJhc2ljCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBI
YXNoVHJhaXRzOwogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkJhc2ljQmxvY2tL
ZXk+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6QmFzaWNCbG9ja0tleT4gewotICAgIHN0
YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJT
ZXR0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0
b21HZXR0ZXJTZXR0ZXIuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcg
KzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBDdXN0b21HZXR0ZXJTZXR0ZXIgOiBwdWJs
aWMgSlNDZWxsIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
U3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwog
CiAgICAgdHlwZWRlZiBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBDdXN0b21HZXR0ZXI7CiAg
ICAgdHlwZWRlZiBQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYyBDdXN0b21TZXR0ZXI7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3Iu
aAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENv
cHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAg
Q29weXJpZ2h0IChDKSAyMDA4LCAyMDExLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0zMCw3ICszMCw3IEBAIGNsYXNzIEdl
dHRlclNldHRlcjsKIGNsYXNzIERhdGVDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5h
bEZ1bmN0aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGlj
UHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBEYXRlQ29uc3RydWN0b3IqIGNyZWF0ZShWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBEYXRlUHJvdG90eXBlKiBkYXRlUHJvdG90eXBlLCBH
ZXR0ZXJTZXR0ZXIqKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0
ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTMyLDcgKzMyLDcgQEAgcHJp
dmF0ZToKIAogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIERhdGVQcm90b3R5cGUqIGNyZWF0ZShWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RlZmluZVByb3BlcnR5QXR0cmli
dXRlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RlZmlu
ZVByb3BlcnR5QXR0cmlidXRlcy5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EZWZpbmVQcm9wZXJ0eUF0dHJpYnV0ZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zNiwxMiArMzYsMTIgQEAgcHVibGljOgogICAgIHN0YXRpY19hc3NlcnQoVHJ1ZVRyaVN0YXRl
ID09IDEsICJUcnVlVHJpU3RhdGUgaXMgMS4iKTsKICAgICBzdGF0aWNfYXNzZXJ0KE1peGVkVHJp
U3RhdGUgPT0gMiwgIk1peGVkVHJpU3RhdGUgaXMgMi4iKTsKIAotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBDb25maWd1cmFibGVTaGlmdCA9IDA7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IEVudW1lcmFibGVTaGlmdCA9IDI7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFdyaXRhYmxl
U2hpZnQgPSA0OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBWYWx1ZVNoaWZ0ID0gNjsKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgR2V0U2hpZnQgPSA3OwotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTZXRTaGlmdCA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBDb25m
aWd1cmFibGVTaGlmdCA9IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBFbnVtZXJh
YmxlU2hpZnQgPSAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgV3JpdGFibGVTaGlm
dCA9IDQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBWYWx1ZVNoaWZ0ID0gNjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEdldFNoaWZ0ID0gNzsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIFNldFNoaWZ0ID0gODsKIAogICAgIERlZmluZVByb3BlcnR5QXR0cmli
dXRlcygpCiAgICAgICAgIDogbV9hdHRyaWJ1dGVzKApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJy
aSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwOCwgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpA
QCAtMjksNyArMjksNyBAQCBjbGFzcyBPYmplY3RQcm90b3R5cGU7CiBjbGFzcyBFcnJvclByb3Rv
dHlwZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpT
Tm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBFcnJvclBy
b3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXZhbEV4ZWN1dGFibGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FdmFsRXhlY3V0YWJsZS5oCShy
ZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FdmFsRXhl
Y3V0YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwOS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBFdmFsRXhl
Y3V0YWJsZSA6IHB1YmxpYyBHbG9iYWxFeGVjCiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0
c0V4dHJhY3RvcjsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gR2xvYmFsRXhlY3V0YWJsZTsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJ
bW1vcnRhbDsKIAogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAgICAgCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb24uaAkocmV2aXNpb24gMjQ5
OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM0LDggKzM0LDggQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBFeGNlcHRp
b24gZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlND
ZWxsOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKLSAgICBzdGF0aWMgY29uc3QgYm9v
bCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9y
dGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsK
IAogICAgIGVudW0gU3RhY2tDYXB0dXJlQWN0aW9uIHsKICAgICAgICAgQ2FwdHVyZVN0YWNrLApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVs
cGVycy5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzQsNyArMjM0LDcg
QEAgc3RhdGljIFN0cmluZyBpbnZhbGlkUGFyYW1ldGVySW5Tb3VyY2VBcAogICAgIGlmIChzb3Vy
Y2VUZXh0LmZpbmQoImluIikgIT0gaW5JbmRleCkKICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmco
b3JpZ2luYWxNZXNzYWdlLCAiIChldmFsdWF0aW5nICciLCBzb3VyY2VUZXh0LCAiJykiKTsKIAot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbkxlbmd0aCA9IDI7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBpbkxlbmd0aCA9IDI7CiAgICAgU3RyaW5nIHJpZ2h0SGFuZFNpZGUgPSBz
b3VyY2VUZXh0LnN1YnN0cmluZyhpbkluZGV4ICsgaW5MZW5ndGgpLnNpbXBsaWZ5V2hpdGVTcGFj
ZSgpOwogICAgIHJldHVybiBtYWtlU3RyaW5nKHJpZ2h0SGFuZFNpZGUsICIgaXMgbm90IGFuIE9i
amVjdC4gKGV2YWx1YXRpbmcgJyIsIHNvdXJjZVRleHQsICInKSIpOwogfQpAQCAtMjUwLDcgKzI1
MCw3IEBAIGlubGluZSBTdHJpbmcgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2YKICAgICBpZiAo
c291cmNlVGV4dC5maW5kKCJpbnN0YW5jZW9mIikgIT0gaW5zdGFuY2VvZkluZGV4KQogICAgICAg
ICByZXR1cm4gbWFrZVN0cmluZyhvcmlnaW5hbE1lc3NhZ2UsICIgKGV2YWx1YXRpbmcgJyIsIHNv
dXJjZVRleHQsICInKSIpOwogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluc3RhbmNlb2ZM
ZW5ndGggPSAxMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGluc3RhbmNlb2ZMZW5n
dGggPSAxMDsKICAgICBTdHJpbmcgcmlnaHRIYW5kU2lkZSA9IHNvdXJjZVRleHQuc3Vic3RyaW5n
KGluc3RhbmNlb2ZJbmRleCArIGluc3RhbmNlb2ZMZW5ndGgpLnNpbXBsaWZ5V2hpdGVTcGFjZSgp
OwogICAgIHJldHVybiBtYWtlU3RyaW5nKHJpZ2h0SGFuZFNpZGUsIGNvbnRlbnQsICIuIChldmFs
dWF0aW5nICciLCBzb3VyY2VUZXh0LCAiJykiKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmgJKHJldmlzaW9uIDI0OTk1OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaAkod29y
a2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCBKU19FWFBPUlRfUFJJVkFURSBFeGNlcHRpb24q
IHRocm93VGVybWluCiBjbGFzcyBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3IgZmluYWwgOiBwdWJs
aWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2Jq
ZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0
cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICBzdGF0aWMgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9y
KiBjcmVhdGUoVk0mIHZtKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4ZWN1dGFibGVCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhlY3V0YWJsZUJhc2UuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZUJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTcyLDkgKzcyLDkgQEAgcHJvdGVjdGVkOgogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0NlbGwg
QmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVk
c0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0
cnVjdGlvbiA9IHRydWU7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKICAgICAK
ICAgICAvLyBGb3JjZSBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlIHRoaXMuCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaAkocmV2
aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25F
eGVjdXRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA5LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA5LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIEZ1bmN0
aW9uRXhlY3V0YWJsZSBmaW5hbCA6IHB1YmxpYyAKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZz
ZXRzRXh0cmFjdG9yOwogcHVibGljOgogICAgIHR5cGVkZWYgU2NyaXB0RXhlY3V0YWJsZSBCYXNl
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJ
c0ltbW9ydGFsOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNj
ZXNzPgogICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuaAko
cmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25SYXJlRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsMTEgKzQ4LDExIEBAIGNsYXNzIEZ1
bmN0aW9uUmFyZURhdGEgZmluYWwgOiBwdWJsaWMgSlMKICAgICAKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgc3RhdGljIEZ1bmN0aW9uUmFyZURhdGEq
IGNyZWF0ZShWTSYsIEpTRnVuY3Rpb24qKTsKIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRz
RGVzdHJ1Y3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3Ry
dWN0aW9uID0gdHJ1ZTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCiAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBK
U1ZhbHVlIHByb3RvdHlwZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9H
ZW5lcmF0b3JQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9HZW5lcmF0b3JQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJhdG9yUHJvdG90eXBlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1
a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zNCw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgR2VuZXJhdG9yUHJvdG90
eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVk
ZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJs
ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEdl
bmVyYXRvclByb3RvdHlwZSogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9HZW5lcmljQXJndW1lbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvR2VuZXJpY0FyZ3VtZW50cy5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmljQXJndW1lbnRzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zNiw3ICszNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CiBjbGFzcyBHZW5lcmlj
QXJndW1lbnRzIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVk
ZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0
aElzTm90WmVybyB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5
SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7
CiAKIHByb3RlY3RlZDoKICAgICBHZW5lcmljQXJndW1lbnRzKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmljT2Zm
c2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJp
Y09mZnNldC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9HZW5lcmljT2Zmc2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgogY2xhc3MgR2VuZXJpY09mZnNldCB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludmFsaWRPZmZz
ZXQgPSBVSU5UX01BWDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGludmFsaWRPZmZz
ZXQgPSBVSU5UX01BWDsKICAgICAKICAgICBHZW5lcmljT2Zmc2V0KCkKICAgICAgICAgOiBtX29m
ZnNldChpbnZhbGlkT2Zmc2V0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
R2V0UHV0SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0dldFB1dEluZm8uaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvR2V0UHV0SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDMsMTEgKzIwMywxMSBA
QCBjbGFzcyBHZXRQdXRJbmZvIHsKIHB1YmxpYzoKICAgICAvLyBHaXZlIGVhY2ggZmllbGQgMTAg
Yml0cyBmb3Igc2ltcGxpY2l0eS4KICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihPcGVyYW5kKSAq
IDggPiAzMCwgIk5vdCBlbm91Z2ggYml0cyBmb3IgR2V0UHV0SW5mbyIpOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBtb2RlU2hpZnQgPSAyMDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
aW5pdGlhbGl6YXRpb25TaGlmdCA9IDEwOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0eXBl
Qml0cyA9ICgxIDw8IGluaXRpYWxpemF0aW9uU2hpZnQpIC0gMTsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgaW5pdGlhbGl6YXRpb25CaXRzID0gKCgxIDw8IG1vZGVTaGlmdCkgLSAxKSAmIH50
eXBlQml0czsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbW9kZUJpdHMgPSAoKDEgPDwgMzAp
IC0gMSkgJiB+aW5pdGlhbGl6YXRpb25CaXRzICYgfnR5cGVCaXRzOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgbW9kZVNoaWZ0ID0gMjA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBpbml0aWFsaXphdGlvblNoaWZ0ID0gMTA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCB0eXBlQml0cyA9ICgxIDw8IGluaXRpYWxpemF0aW9uU2hpZnQpIC0gMTsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIGluaXRpYWxpemF0aW9uQml0cyA9ICgoMSA8PCBtb2RlU2hp
ZnQpIC0gMSkgJiB+dHlwZUJpdHM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtb2Rl
Qml0cyA9ICgoMSA8PCAzMCkgLSAxKSAmIH5pbml0aWFsaXphdGlvbkJpdHMgJiB+dHlwZUJpdHM7
CiAgICAgc3RhdGljX2Fzc2VydCgobW9kZUJpdHMgJiBpbml0aWFsaXphdGlvbkJpdHMgJiB0eXBl
Qml0cykgPT0gMHgwLCAiVGhlcmUgc2hvdWxkIGJlIG5vIGludGVyc2VjdGlvbiBiZXR3ZWVuIFJl
c29sdmVNb2RlIFJlc29sdmVUeXBlIGFuZCBJbml0aWFsaXphdGlvbk1vZGUiKTsKIAogICAgIEdl
dFB1dEluZm8oKSA9IGRlZmF1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9HZXR0ZXJTZXR0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9HZXR0ZXJTZXR0ZXIuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0
LDcgQEAgcHJpdmF0ZToKIAogcHVibGljOgogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dl
dE93blByb3BlcnR5U2xvdCB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICBzdGF0aWMgR2V0
dGVyU2V0dGVyKiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U09iamVjdCogZ2V0dGVyLCBKU09iamVjdCogc2V0dGVyKQogICAgIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0dsb2JhbEV4ZWN1dGFibGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HbG9iYWxFeGVjdXRhYmxlLmgJKHJldmlzaW9u
IDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dsb2JhbEV4ZWN1dGFi
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNs
YXNzIEdsb2JhbEV4ZWN1dGFibGUgOiBwdWJsaWMgU2NyaXB0RXhlY3V0YWJsZSB7CiBwdWJsaWM6
CiAgICAgdXNpbmcgQmFzZSA9IFNjcmlwdEV4ZWN1dGFibGU7Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJ
c0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICBERUNM
QVJFX0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZp
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlm
aWVyLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0lkZW50aWZpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjkwLDcgKzI5MCw3IEBAIHN0cnVjdCBJ
ZGVudGlmaWVyUmVwSGFzaCA6IFB0ckhhc2g8UmVmUHQKIAogc3RydWN0IElkZW50aWZpZXJNYXBJ
bmRleEhhc2hUcmFpdHMgOiBIYXNoVHJhaXRzPGludD4gewogICAgIHN0YXRpYyBpbnQgZW1wdHlW
YWx1ZSgpIHsgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7IH0KLSAgICBz
dGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKIH07CiAKIHR5cGVkZWYgSGFz
aFNldDxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+LCBJZGVudGlmaWVyUmVwSGFzaD4gSWRlbnRp
ZmllclNldDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbk9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5oCShyZXZpc2lvbiAyNDk5
NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25PYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBAIHByaXZhdGU6CiAKIHB1
YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0
YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
IAogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QqIGNyZWF0ZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQog
ICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rp
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5h
bEZ1bmN0aW9uLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBA
QCBjbGFzcyBJbnRlcm5hbEZ1bmN0aW9uIDogcHVibGljIEpTRGVzdHJ1CiAgICAgZnJpZW5kIGNs
YXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRGVzdHJ1
Y3RpYmxlT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBJbXBs
ZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlIHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGE7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5j
ZSB8IE92ZXJyaWRlc0dldENhbGxEYXRhOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5
cGUsIFN1YnNwYWNlQWNjZXNzPgogICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3Io
Vk0mIHZtKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9y
Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBBbmR5IFZh
bldhZ29uZXIgKGFuZHlAdmFud2Fnb25lci5mYW1pbHkpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIEludGxDb2xsYXRvclByb3RvdHlwZTsK
IGNsYXNzIEludGxDb2xsYXRvckNvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNlOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEludGxDb2xsYXRvckNvbnN0cnVjdG9yKiBjcmVhdGUo
Vk0mLCBTdHJ1Y3R1cmUqLCBJbnRsQ29sbGF0b3JQcm90b3R5cGUqKTsKICAgICBzdGF0aWMgU3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90eXBl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxh
dG9yUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBBbmR5IFZhbldhZ29uZXIgKGFuZHlA
dmFud2Fnb25lci5mYW1pbHkpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3
ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSW50bENvbGxhdG9yUHJvdG90eXBlIGZp
bmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNO
b25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEludGxDb2xs
YXRvclByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsK
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVj
dCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERh
dGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAy
NDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3Jt
YXRDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAxNSBBbmR5IFZhbldhZ29uZXIgKGFuZHlAdmFud2Fnb25lci5mYW1pbHkp
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNz
IEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZTsKIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdENv
bnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVibGljOgogICAg
IHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVy
dHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3Rh
dGljIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUq
LCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1l
Rm9ybWF0UHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBBbmR5IFZhbldhZ29u
ZXIgKGFuZHlAdmFud2Fnb25lci5mYW1pbHkpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zNCw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSW50bERhdGVUaW1lRm9y
bWF0UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgog
ICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJv
cGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAg
c3RhdGljIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVj
dG9yLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBBbmR5IFZhbldhZ29uZXIgKGFuZHlAdmFu
d2Fnb25lci5mYW1pbHkpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw3
ICszOSw3IEBAIGNsYXNzIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGU7CiBjbGFzcyBJbnRsTnVt
YmVyRm9ybWF0Q29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBw
dWJsaWM6CiAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNT
dGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7
CiAKICAgICBzdGF0aWMgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yKiBjcmVhdGUoVk0mLCBT
dHJ1Y3R1cmUqLCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlKik7CiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5
cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVt
YmVyRm9ybWF0UHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQW5keSBWYW5XYWdv
bmVyIChhbmR5QHZhbndhZ29uZXIuZmFtaWx5KQorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzQsNyArMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEludGxOdW1iZXJGb3Jt
YXRQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAg
ICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBz
dGF0aWMgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
Vk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBBbmR5IFZhbldhZ29uZXIgKGFuZHlA
dmFud2Fnb25lci5mYW1pbHkpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NCw3
ICs0NSw3IEBAIGNsYXNzIEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZTsKIGNsYXNzIEludGxPYmpl
Y3QgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgSW50
bE9iamVjdCogY3JlYXRlKFZNJiwgU3RydWN0dXJlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSog
Y3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlc0NvbnN0cnVjdG9yLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1
bGVzQ29uc3RydWN0b3IuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTggQW5keSBWYW5XYWdvbmVy
IChhbmR5QHZhbndhZ29uZXIuZmFtaWx5KQorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzgsNyArMzksNyBAQCBjbGFzcyBJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGU7CiBjbGFzcyBJ
bnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9u
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlU
YWJsZTsKIAogICAgIHN0YXRpYyBJbnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3RvciogY3JlYXRlKFZN
JiwgU3RydWN0dXJlKiwgSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlKik7CiAgICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlc1Byb3Rv
dHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQ
bHVyYWxSdWxlc1Byb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXNQcm90b3R5cGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTggQW5keSBWYW5XYWdv
bmVyIChhbmR5QHZhbndhZ29uZXIuZmFtaWx5KQorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzQsNyArMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEludGxQbHVyYWxSdWxl
c1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAg
ICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3Bl
cnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0
YXRpYyBJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGUqIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZN
JiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0l0ZXJhdG9yUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSXRlcmF0b3JQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTU5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSXRlcmF0b3JQcm90b3R5cGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgWXVz
dWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTMyLDcgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBJdGVyYXRv
clByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAg
ICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAK
ICAgICBzdGF0aWMgSXRlcmF0b3JQcm90b3R5cGUqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCShyZXZpc2lvbiAyNDk5NTkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFy
cmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAw
MyBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQogICogIENvcHlyaWdodCAoQykgMjAwNiBBbGV4
ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKgpAQCAtODEsNyArODEsNyBAQCBKU0Fy
cmF5KiBKU0FycmF5Ojp0cnlDcmVhdGVVbmluaXRpYWxpemVkCiAgICAgICAgIEFTU0VSVCgKICAg
ICAgICAgICAgIGluZGV4aW5nVHlwZSA9PSBBcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdlCiAg
ICAgICAgICAgICB8fCBpbmRleGluZ1R5cGUgPT0gQXJyYXlXaXRoQXJyYXlTdG9yYWdlKTsKLSAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluZGV4QmlhcyA9IDA7CisgICAgICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgaW5kZXhCaWFzID0gMDsKICAgICAgICAgdW5zaWduZWQgdmVj
dG9yTGVuZ3RoID0gQXJyYXlTdG9yYWdlOjpvcHRpbWFsVmVjdG9yTGVuZ3RoKGluZGV4Qmlhcywg
c3RydWN0dXJlLCBpbml0aWFsTGVuZ3RoKTsKICAgICAgICAgdm9pZCogdGVtcCA9IHZtLmpzVmFs
dWVHaWdhY2FnZUF1eGlsaWFyeVNwYWNlLmFsbG9jYXRlTm9uVmlydHVhbCgKICAgICAgICAgICAg
IHZtLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAkocmV2aXNp
b24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIEpTQXJyYXkgOiBwdWJsaWMgSlNO
b25GaW5hbE9iamVjdCAKIAogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBC
YXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogCiAgICAgc3RhdGljIHNpemVfdCBhbGxvY2F0
aW9uU2l6ZShDaGVja2VkPHNpemVfdD4gaW5saW5lQ2FwYWNpdHkpCiAgICAgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXIuaAkocmV2aXNpb24g
MjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3Mg
SlNBcnJheUJ1ZmZlciBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoK
ICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7
CiAgICAgCiBwcm90ZWN0ZWQ6CiAgICAgSlNBcnJheUJ1ZmZlcihWTSYsIFN0cnVjdHVyZSosIFJl
ZlB0cjxBcnJheUJ1ZmZlcj4mJik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5QnVmZmVyVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTk2LDcgKzk2LDcgQEAgaW5saW5lIGJvb2wgaGFzQXJyYXlCdWZmZXIoVHlwZWRBcnJh
eU1vZAogY2xhc3MgSlNBcnJheUJ1ZmZlclZpZXcgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGZhc3RTaXplTGltaXQgPSAxMDAwOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgZmFzdFNpemVMaW1pdCA9IDEwMDA7CiAgICAgdXNpbmcgVmVjdG9yUHRyID0g
Q2FnZWRCYXJyaWVyUHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIHZvaWQsIHRhZ0NhZ2VkUHRyPjsK
ICAgICAKICAgICBzdGF0aWMgc2l6ZV90IHNpemVPZih1aW50MzJfdCBsZW5ndGgsIHVpbnQzMl90
IGVsZW1lbnRTaXplKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJ
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0lu
dC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JpZ0ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIHVzaW5nIEJh
c2UgPSBKU0NlbGw7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsIHwgT3ZlcnJpZGVzVG9U
aGlzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWwgfCBPdmVycmlkZXNUb1RoaXM7
CiAgICAgZnJpZW5kIGNsYXNzIENhY2hlZEJpZ0ludDsKIAogcHVibGljOgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAkocmV2aXNpb24gMjQ5OTU5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC00OTAsNyArNDkwLDcgQEAgdHlwZWRlZiBJbnRIYXNoPEVuY29kZWRKU1ZhbHVlPiBF
bmNvZGVkSgogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKIHN0cnVjdCBFbmNvZGVkSlNWYWx1ZUhh
c2hUcmFpdHMgOiBIYXNoVHJhaXRzPEVuY29kZWRKU1ZhbHVlPiB7Ci0gICAgc3RhdGljIGNvbnN0
IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGVt
cHR5VmFsdWUoKSB7IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsgfQogICAgIHN0
YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShFbmNvZGVkSlNWYWx1ZSYgc2xvdCkgeyBz
bG90ID0gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNWYWx1ZTo6SGFzaFRhYmxlRGVsZXRlZFZh
bHVlKSk7IH0KICAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShFbmNvZGVkSlNWYWx1ZSB2
YWx1ZSkgeyByZXR1cm4gdmFsdWUgPT0gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNWYWx1ZTo6
SGFzaFRhYmxlRGVsZXRlZFZhbHVlKSk7IH0KQEAgLTUwNSw3ICs1MDUsNyBAQCBzdHJ1Y3QgRW5j
b2RlZEpTVmFsdWVIYXNoVHJhaXRzIDogSGFzaFRyCiB0eXBlZGVmIHN0ZDo6cGFpcjxFbmNvZGVk
SlNWYWx1ZSwgU291cmNlQ29kZVJlcHJlc2VudGF0aW9uPiBFbmNvZGVkSlNWYWx1ZVdpdGhSZXBy
ZXNlbnRhdGlvbjsKIAogc3RydWN0IEVuY29kZWRKU1ZhbHVlV2l0aFJlcHJlc2VudGF0aW9uSGFz
aFRyYWl0cyA6IEhhc2hUcmFpdHM8RW5jb2RlZEpTVmFsdWVXaXRoUmVwcmVzZW50YXRpb24+IHsK
LSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKICAgICBzdGF0aWMg
RW5jb2RlZEpTVmFsdWVXaXRoUmVwcmVzZW50YXRpb24gZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHN0
ZDo6bWFrZV9wYWlyKEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpLCBTb3VyY2VDb2RlUmVwcmVz
ZW50YXRpb246Ok90aGVyKTsgfQogICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1
ZShFbmNvZGVkSlNWYWx1ZVdpdGhSZXByZXNlbnRhdGlvbiYgc2xvdCkgeyBzbG90ID0gc3RkOjpt
YWtlX3BhaXIoSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNWYWx1ZTo6SGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKSksIFNvdXJjZUNvZGVSZXByZXNlbnRhdGlvbjo6T3RoZXIpOyB9CiAgICAgc3RhdGlj
IGJvb2wgaXNEZWxldGVkVmFsdWUoRW5jb2RlZEpTVmFsdWVXaXRoUmVwcmVzZW50YXRpb24gdmFs
dWUpIHsgcmV0dXJuIHZhbHVlID09IHN0ZDo6bWFrZV9wYWlyKEpTVmFsdWU6OmVuY29kZShKU1Zh
bHVlKEpTVmFsdWU6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSkpLCBTb3VyY2VDb2RlUmVwcmVzZW50
YXRpb246Ok90aGVyKTsgfQpAQCAtNTIwLDcgKzUyMCw3IEBAIHN0cnVjdCBFbmNvZGVkSlNWYWx1
ZVdpdGhSZXByZXNlbnRhdGlvbkgKICAgICB7CiAgICAgICAgIHJldHVybiBhID09IGI7CiAgICAg
fQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0g
dHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRl
bGV0ZWQgPSB0cnVlOwogfTsKIAogLy8gU3RhbmQtYWxvbmUgaGVscGVyIGZ1bmN0aW9ucy4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCShyZXZpc2lvbiAyNDk5NTkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkg
UG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKICAqICBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2Vs
bHkgKHBta0Bwb3N0LmNvbSkKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTgyLDkg
KzgyLDkgQEAgY2xhc3MgSlNDZWxsIDogcHVibGljIEhlYXBDZWxsIHsKICAgICBmcmllbmQgdm9p
ZCogdHJ5QWxsb2NhdGVDZWxsSGVscGVyKEhlYXAmLCBzaXplX3QsIEdDRGVmZXJyYWxDb250ZXh0
KiwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlKTsKIAogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IDA7CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3Ry
dWN0aW9uID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rp
b24gPSBmYWxzZTsKIAogICAgIC8vIERvbid0IGNhbGwgdGhpcyBkaXJlY3RseS4gQ2FsbCBKU0M6
OnN1YnNwYWNlRm9yPFR5cGU+KHZtKSBpbnN0ZWFkLgogICAgIC8vIEZJWE1FOiBSZWZlciB0byBT
dWJzcGFjZSBieSByZWZlcmVuY2UuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbi5oCShyZXZp
c2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0N1c3RvbUdl
dHRlclNldHRlckZ1bmN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw3ICszOCw3IEBAIHB1
YmxpYzoKICAgICAvLyBUaGUgVHlwZSBpcyBzZXQgdG8gdGhlIG51bWJlciBvZiBhcmd1bWVudHMg
dGhlIHJlc3VsdGFudCBmdW5jdGlvbiB3aWxsIGhhdmUuCiAgICAgZW51bSBjbGFzcyBUeXBlIHsg
R2V0dGVyID0gMCwgU2V0dGVyID0gMSB9OwogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzIG1vZGU+CiAgICAgc3Rh
dGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlldy5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNEYXRhVmlldyBmaW5hbCA6
IHB1YmxpYyBKU0FycmF5QnVmZmVyVmlldyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0FycmF5
QnVmZmVyVmlldyBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBlbGVtZW50U2l6ZSA9
IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBlbGVtZW50U2l6ZSA9IDE7CiAgICAg
CiBwcm90ZWN0ZWQ6CiAgICAgSlNEYXRhVmlldyhWTSYsIENvbnN0cnVjdGlvbkNvbnRleHQmLCBB
cnJheUJ1ZmZlciopOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRh
Vmlld1Byb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU0RhdGFWaWV3UHJvdG90eXBl
IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYg
SlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiBwcm90ZWN0ZWQ6CiAgICAg
SlNEYXRhVmlld1Byb3RvdHlwZShWTSYsIFN0cnVjdHVyZSopOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Rlc3RydWN0aWJsZU9iamVjdC5oCShyZXZp
c2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Rlc3RydWN0
aWJsZU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIEpTRGVz
dHJ1Y3RpYmxlT2JqZWN0IDogcHVibGljIEpTTm8KIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9u
RmluYWxPYmplY3QgQmFzZTsKIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rp
b24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0g
dHJ1ZTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nl
c3M+CiAgICAgc3RhdGljIENvbXBsZXRlU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRml4ZWRBcnJheS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRml4ZWRBcnJheS5oCShyZXZp
c2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ZpeGVkQXJy
YXkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIEpTRml4ZWRBcnJheSBmaW5h
bCA6IHB1YmxpYyBKU0NlbGwKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwogCiBwdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1t
b3J0YWw7CiAKICAgICBERUNMQVJFX0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXcuaAkocmV2aXNp
b24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05Niw5ICs5Niw5IEBAIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEpTQXJyYXlCdWZmZXJWaWV3IEJhc2U7CiAgICAgdHlwZWRlZiB0eXBlbmFt
ZSBBZGFwdG9yOjpUeXBlIEVsZW1lbnRUeXBlOwogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRQcm9w
ZXJ0eU5hbWVzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJjZXB0c0dldE93
blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybzsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90
IHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90
WmVybzsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBlbGVtZW50U2l6ZSA9IHNpemVvZih0
eXBlbmFtZSBBZGFwdG9yOjpUeXBlKTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGVs
ZW1lbnRTaXplID0gc2l6ZW9mKHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUpOwogICAgIAogcHJvdGVj
dGVkOgogICAgIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3KFZNJiwgQ29uc3RydWN0aW9uQ29udGV4
dCYpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxMZXhpY2Fs
RW52aXJvbm1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
OSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1l
bnQgZmluYWwgOgogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU1NlZ21lbnRlZFZhcmlhYmxl
T2JqZWN0OwogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Q7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OwogCiAgICAgc3RhdGljIEpTR2xvYmFs
TGV4aWNhbEVudmlyb25tZW50KiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
SlNTY29wZSogcGFyZW50U2NvcGUpCiAgICAgewpAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogICAgIC8vIFdlIGRvbid0IG5lZWQg
YSBkZXN0cnVjdG9yIGJlY2F1c2Ugd2UgdXNlIGEgZmluYWxpemVyIGluc3RlYWQuCi0gICAgc3Rh
dGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOworICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFsc2U7CiAKICAgICBib29sIGlzRW1wdHko
KSBjb25zdCB7IHJldHVybiAhc3ltYm9sVGFibGUoKS0+c2l6ZSgpOyB9CiAgICAgYm9vbCBpc0Nv
bnN0VmFyaWFibGUoVW5pcXVlZFN0cmluZ0ltcGwqKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAkocmV2aXNpb24gMjQ5OTU5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAkod29ya2luZyBj
b3B5KQpAQCAtNTMxLDcgKzUzMSw3IEBAIHB1YmxpYzoKICAgICAgICAgCiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0
aWNQcm9wZXJ0eVRhYmxlIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lcyB8IElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0OworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGUgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSXNJbW11dGFibGVQcm90b3R5cGVF
eG90aWNPYmplY3Q7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgSlNHbG9iYWxPYmpl
Y3QqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSopOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0ltbXV0YWJsZUJ1dHRlcmZseS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW1tdXRhYmxlQnV0dGVyZmx5LmgJKHJldmlzaW9uIDI0
OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW1tdXRhYmxlQnV0dGVy
Zmx5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBKU0ltbXV0YWJsZUJ1dHRl
cmZseSA6IHB1YmxpYyBKU0NlCiAgICAgdXNpbmcgQmFzZSA9IEpTQ2VsbDsKIAogcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0lt
bW9ydGFsOwogCiAgICAgREVDTEFSRV9JTkZPOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rv
ci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBA
QCBjbGFzcyBKU0ludGVybmFsUHJvbWlzZVByb3RvdHlwZTsKIGNsYXNzIEpTSW50ZXJuYWxQcm9t
aXNlQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSlNQcm9taXNlQ29uc3RydWN0b3IgewogcHVi
bGljOgogICAgIHVzaW5nIEJhc2UgPSBKU1Byb21pc2VDb25zdHJ1Y3RvcjsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhh
c1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJs
ZTsKIAogICAgIHN0YXRpYyBKU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yKiBjcmVhdGUoVk0m
LCBTdHJ1Y3R1cmUqLCBKU0ludGVybmFsUHJvbWlzZVByb3RvdHlwZSosIEdldHRlclNldHRlciop
OwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2Jq
ZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0lu
dGVybmFsUHJvbWlzZURlZmVycmVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oCShyZXZpc2lvbiAyNDk5NTkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBKU0ludGVybmFsUHJvbWlz
ZTsKIGNsYXNzIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQgZmluYWwgOiBwdWJsaWMgSlNQcm9t
aXNlRGVmZXJyZWQgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNQcm9taXNlRGVmZXJyZWQgQmFz
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJl
SXNJbW1vcnRhbDsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkKiB0cnlDcmVhdGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKTsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VQcm90
b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0lu
dGVybmFsUHJvbWlzZVByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZVByb3RvdHlwZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU0ludGVybmFsUHJv
bWlzZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU1Byb21pc2VQcm90b3R5cGUgewogcHVibGlj
OgogICAgIHR5cGVkZWYgSlNQcm9taXNlUHJvdG90eXBlIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzOwogCiAgICAgc3RhdGljIEpTSW50ZXJuYWxQcm9taXNlUHJvdG90eXBlKiBjcmVhdGUoVk0m
LCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50
LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TGV4aWNhbEVudmlyb25tZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OCw3
ICs0OCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB1c2luZyBCYXNlID0gSlNTeW1ib2xUYWJs
ZU9iamVjdDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKIAogICAgIFdyaXRlQmFycmllckJhc2U8
VW5rbm93bj4qIHZhcmlhYmxlcygpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNNb2R1bGVFbnZpcm9ubWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlRW52aXJvbm1lbnQuaAkocmV2aXNpb24gMjQ5OTU5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVFbnZpcm9ubWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBKU01vZHVsZUVudmlyb25t
ZW50IGZpbmFsIDogcHVibGljCiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3Rv
cjsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNMZXhpY2FsRW52aXJvbm1lbnQ7Ci0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5h
bWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXM7CiAKICAgICBzdGF0aWMgSlNNb2R1bGVFbnZpcm9ubWVudCogY3Jl
YXRlKFZNJiwgU3RydWN0dXJlKiwgSlNTY29wZSosIFN5bWJvbFRhYmxlKiwgSlNWYWx1ZSBpbml0
aWFsVmFsdWUsIEFic3RyYWN0TW9kdWxlUmVjb3JkKik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuaAkocmV2aXNpb24gMjQ5OTU5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDE2IFl1c3Vr
ZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC00
MCw3ICs0MCw3IEBAIHByaXZhdGU6CiAgICAgSlNNb2R1bGVMb2FkZXIoVk0mLCBTdHJ1Y3R1cmUq
KTsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlU
YWJsZTsKIAogICAgIGVudW0gU3RhdHVzIHsKICAgICAgICAgRmV0Y2ggPSAxLApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZU5hbWVzcGFj
ZU9iamVjdC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU01vZHVsZU5hbWVzcGFjZU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDcgKzMzLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU01vZHVsZU5hbWVzcGFjZU9iamVjdCBmaW5hbCA6
IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Rl
c3RydWN0aWJsZU9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElz
Tm90WmVybyB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBHZXRPd25Qcm9wZXJ0eVNsb3RJ
c0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2Jq
ZWN0OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVyY2Vw
dHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgR2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9w
ZXJ0eUFic2VuY2UgfCBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdDsKIAogICAgIHN0
YXRpYyBKU01vZHVsZU5hbWVzcGFjZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEFic3RyYWN0
TW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQsIFZlY3RvcjxzdGQ6OnBhaXI8SWRlbnRpZmllciwg
QWJzdHJhY3RNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24+PiYmIHJlc29sdXRpb25zKQogICAgIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm9uRGVzdHJ1Y3RpYmxlUHJv
eHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vbkRl
c3RydWN0aWJsZVByb3h5LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTm9uRGVzdHJ1Y3RpYmxlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAt
MzIsOCArMzIsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU05vbkRlc3RydWN0aWJs
ZVByb3h5IDogcHVibGljIEpTUHJveHkgewogICAgICAgICBwdWJsaWM6CiAgICAgICAgICAgICB1
c2luZyBCYXNlID0gSlNQcm94eTsKLSAgICAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwotICAgICAgICAgICAgc3RhdGlj
IGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOworICAgICAgICAgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
OworICAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBm
YWxzZTsKIAogICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNl
QWNjZXNzIG1vZGU+CiAgICAgICAgICAgICAgICAgc3RhdGljIENvbXBsZXRlU3Vic3BhY2UqIHN1
YnNwYWNlRm9yKFZNJiB2bSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T05PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT05PYmplY3QuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQwLDcgKzY0MCw3
IEBAIHByaXZhdGU6CiB9OwogCiAvLyBXZSBjbGFtcCByZWN1cnNpb24gd2VsbCBiZXlvbmQgYW55
dGhpbmcgcmVhc29uYWJsZS4KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtRmlsdGVyUmVj
dXJzaW9uID0gNDAwMDA7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heGltdW1GaWx0ZXJS
ZWN1cnNpb24gPSA0MDAwMDsKIGVudW0gV2Fsa2VyU3RhdGUgeyBTdGF0ZVVua25vd24sIEFycmF5
U3RhcnRTdGF0ZSwgQXJyYXlTdGFydFZpc2l0TWVtYmVyLCBBcnJheUVuZFZpc2l0TWVtYmVyLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFN0YXJ0U3RhdGUsIE9iamVj
dFN0YXJ0VmlzaXRNZW1iZXIsIE9iamVjdEVuZFZpc2l0TWVtYmVyIH07CiBORVZFUl9JTkxJTkUg
SlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAkocmV2aXNpb24gMjQ5OTU5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU09OT2JqZWN0IGZpbmFsIDog
cHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5h
bE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEpTT05PYmplY3QqIGNy
ZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAt
MTEzMSw3ICsxMTMxLDcgQEAgY2xhc3MgSlNGaW5hbE9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU09i
agogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU09iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFnczsKIAogICAgIHN0YXRpYyBzaXplX3QgYWxsb2NhdGlvblNpemUoQ2hlY2tlZDxzaXplX3Q+
IGlubGluZUNhcGFjaXR5KQogICAgIHsKQEAgLTExMzksMTUgKzExMzksMTUgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIHN0YXRpYyBpbmxpbmUgY29uc3QgVHlwZUluZm8gdHlwZUluZm8oKSB7IHJl
dHVybiBUeXBlSW5mbyhGaW5hbE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKTsgfQotICAgIHN0
YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgZGVmYXVsdEluZGV4aW5nVHlwZSA9IE5vbkFycmF5Owor
ICAgIHN0YXRpYyBjb25zdGV4cHIgSW5kZXhpbmdUeXBlIGRlZmF1bHRJbmRleGluZ1R5cGUgPSBO
b25BcnJheTsKICAgICAgICAgCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGRlZmF1bHRTaXpl
ID0gNjQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBkZWZhdWx0U2l6ZSA9IDY0Owog
ICAgIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgZGVmYXVsdElubGluZUNhcGFjaXR5KCkKICAgICB7
CiAgICAgICAgIHJldHVybiAoZGVmYXVsdFNpemUgLSBhbGxvY2F0aW9uU2l6ZSgwKSkgLyBzaXpl
b2YoV3JpdGVCYXJyaWVyPFVua25vd24+KTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgbWF4U2l6ZSA9IDUxMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heFNp
emUgPSA1MTI7CiAgICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBtYXhJbmxpbmVDYXBhY2l0eSgp
CiAgICAgewogICAgICAgICByZXR1cm4gKG1heFNpemUgLSBhbGxvY2F0aW9uU2l6ZSgwKSkgLyBz
aXplb2YoV3JpdGVCYXJyaWVyPFVua25vd24+KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuaAkocmV2aXNpb24gMjQ5
OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEdldHRlclNldHRl
cjsKIGNsYXNzIEpTUHJvbWlzZUNvbnN0cnVjdG9yIDogcHVibGljIEpTRnVuY3Rpb24gewogcHVi
bGljOgogICAgIHVzaW5nIEJhc2UgPSBKU0Z1bmN0aW9uOwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJv
cGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAg
c3RhdGljIEpTUHJvbWlzZUNvbnN0cnVjdG9yKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCBKU1By
b21pc2VQcm90b3R5cGUqLCBHZXR0ZXJTZXR0ZXIqIHNwZWNpZXNTeW1ib2wpOwogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1
ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJl
ZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlz
ZURlZmVycmVkLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNyArMzgsNyBAQCBj
bGFzcyBKU0Z1bmN0aW9uOwogY2xhc3MgSlNQcm9taXNlRGVmZXJyZWQgOiBwdWJsaWMgSlNDZWxs
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJl
SXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgc3Ry
dWN0IERlZmVycmVkRGF0YSB7CiAgICAgICAgIFdURl9GT1JCSURfSEVBUF9BTExPQ0FUSU9OOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUHJvdG90eXBlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUHJv
dG90eXBlLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTUHJvbWlzZVByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDcgKzMyLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiBjbGFzcyBKU1Byb21pc2VQcm90b3R5cGUgOiBwdWJsaWMgSlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1By
b3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgSlNQcm9taXNlUHJvdG90eXBlKiBjcmVhdGUoVk0m
LCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVu
dW1lcmF0b3IuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcg
KzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Ig
ZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNDZWxs
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJ
c0ltbW9ydGFsOwogCiAgICAgc3RhdGljIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogY3JlYXRl
KFZNJiwgU3RydWN0dXJlKiwgdWludDMyX3QsIHVpbnQzMl90LCBQcm9wZXJ0eU5hbWVBcnJheSYm
KTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm94eS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJveHkuaAkocmV2aXNp
b24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm94eS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU1Byb3h5
IDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNl
ID0gSlNEZXN0cnVjdGlibGVPYmplY3Q7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSW50ZXJjZXB0c0dldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybzsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSW50
ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybzsK
IAogICAgIHN0YXRpYyBKU1Byb3h5KiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgSlNPYmplY3QqIHRhcmdldCkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Njb3BlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTY29wZS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1Njb3BlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw3ICszOCw3IEBAIGNs
YXNzIFdhdGNocG9pbnRTZXQ7CiBjbGFzcyBKU1Njb3BlIDogcHVibGljIEpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0OwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgT3ZlcnJpZGVzVG9UaGlzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc1RvVGhpczsKIAogICAg
IERFQ0xBUkVfRVhQT1JUX0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTY3JpcHRGZXRjaFBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjQ5
OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY3JpcHRGZXRjaFBhcmFt
ZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsOCArMzcsOCBAQCBjbGFzcyBKU1NjcmlwdEZl
dGNoUGFyYW1ldGVycyBmaW5hbCA6IHB1CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTQ2Vs
bDsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKLSAgICBzdGF0aWMgY29uc3QgYm9v
bCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9y
dGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsK
IAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU2NyaXB0RmV0Y2hlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU2NyaXB0RmV0Y2hlci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NjcmlwdEZldGNoZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMzcsOCArMzcsOCBAQCBjbGFzcyBKU1NjcmlwdEZldGNoZXIgZmluYWwgOiBwdWJs
aWMgSlNDCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTQ2VsbDsKIAotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3Ry
dWN0dXJlSXNJbW1vcnRhbDsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9u
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKIAogICAgIERFQ0xBUkVfRVhQ
T1JUX0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2VnbWVu
dGVkVmFyaWFibGVPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmgJKHJldmlzaW9uIDI0OTk1OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2VnbWVudGVkVmFyaWFibGVPYmplY3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJF
X0lORk87CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+CiAgICAgc3RhdGlj
IENvbXBsZXRlU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU291cmNlQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU291cmNlQ29kZS5oCShyZXZpc2lvbiAyNDk5NTkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NvdXJjZUNvZGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYgWXVzdWtlIFN1
enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzUsOCArMzYsOCBAQCBjbGFzcyBKU1NvdXJjZUNvZGUgZmluYWwgOiBwdWJsaWMgSlND
ZWxsCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTQ2VsbDsKIAotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0
dXJlSXNJbW1vcnRhbDsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0g
dHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKIAogICAgIERFQ0xBUkVfRVhQT1JU
X0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5j
cHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgSlNTdHJp
bmc6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWwKICAgICAgICAgdmlzaXRvci5yZXBvcnRFeHRy
YU1lbW9yeVZpc2l0ZWQoaW1wbC0+Y29zdER1cmluZ0dDKCkpOwogfQogCi1zdGF0aWMgY29uc3Qg
dW5zaWduZWQgbWF4TGVuZ3RoRm9yT25TdGFja1Jlc29sdmUgPSAyMDQ4Oworc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBtYXhMZW5ndGhGb3JPblN0YWNrUmVzb2x2ZSA9IDIwNDg7CiAKIHZvaWQg
SlNSb3BlU3RyaW5nOjpyZXNvbHZlUm9wZUludGVybmFsOChMQ2hhciogYnVmZmVyKSBjb25zdAog
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCShyZXZpc2lv
biAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCSh3
b3JraW5nIGNvcHkpCkBAIC04OCw5ICs4OCw5IEBAIHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3Mg
U21hbGxTdHJpbmdzOwogCiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsIHwgT3ZlcnJp
ZGVzVG9UaGlzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IElu
dGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8g
fCBTdHJ1Y3R1cmVJc0ltbW9ydGFsIHwgT3ZlcnJpZGVzVG9UaGlzOwogCi0gICAgc3RhdGljIGNv
bnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlND
ZWxsKik7CiAgICAgCiAgICAgLy8gV2Ugc3BlY2lhbGl6ZSB0aGUgc3RyaW5nIHN1YnNwYWNlIHRv
IGdldCB0aGUgZmFzdGVzdCBwb3NzaWJsZSBzd2VlcC4gVGhpcyB3b3VsZG4ndCBiZQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9sVGFibGVPYmpl
Y3QuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTeW1ib2xUYWJsZU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNyArMzks
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEpTU3ltYm9sVGFibGVPYmplY3QgOiBwdWJsaWMg
SlNTY29wZSB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU1Njb3BlIEJhc2U7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBP
dmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldFByb3Bl
cnR5TmFtZXM7CiAgICAgCiAgICAgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zeW1ib2xUYWJsZS5nZXQoKTsgfQogICAgIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNUZW1wbGF0ZU9iamVjdERlc2NyaXB0b3IuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1RlbXBsYXRlT2JqZWN0RGVzY3JpcHRv
ci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1RlbXBsYXRlT2JqZWN0RGVzY3JpcHRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+LgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsOCArMzUsOCBA
QCBjbGFzcyBKU1RlbXBsYXRlT2JqZWN0RGVzY3JpcHRvciBmaW5hbCA6CiBwdWJsaWM6CiAgICAg
dXNpbmcgQmFzZSA9IEpTQ2VsbDsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKLSAg
ICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rl
c3RydWN0aW9uID0gdHJ1ZTsKICAgICBERUNMQVJFX0lORk87CiAKICAgICBzdGF0aWMgSlNUZW1w
bGF0ZU9iamVjdERlc2NyaXB0b3IqIGNyZWF0ZShWTSYsIFJlZjxUZW1wbGF0ZU9iamVjdERlc2Ny
aXB0b3I+JiYsIGludCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5
cGVJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlSW5mby5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1R5cGVJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvLyAtKi0g
bW9kZTogYysrOyBjLWJhc2ljLW9mZnNldDogNCAtKi0KIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zNywyNiArMzcsMjYgQEAgY2xhc3MgTExJbnRPZmZzZXRz
RXh0cmFjdG9yOwogCiAvLyBJbmxpbmUgZmxhZ3MuCiAKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBN
YXNxdWVyYWRlc0FzVW5kZWZpbmVkID0gMTsgLy8gV2ViQ29yZSB1c2VzIE1hc3F1ZXJhZGVzQXNV
bmRlZmluZWQgdG8gbWFrZSBkb2N1bWVudC5hbGwgdW5kZXRlY3RhYmxlLgotc3RhdGljIGNvbnN0
IHVuc2lnbmVkIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgPSAxIDw8IDE7Ci1zdGF0aWMg
Y29uc3QgdW5zaWduZWQgT3ZlcnJpZGVzR2V0Q2FsbERhdGEgPSAxIDw8IDI7IC8vIE5lZWQgdGhp
cyBmbGFnIGlmIHlvdSBpbXBsZW1lbnQgW1tDYWxsYWJsZV1dIGludGVyZmFjZSwgd2hpY2ggbWVh
bnMgb3ZlcnJpZGluZyBnZXRDYWxsRGF0YS4gVGhlIG9iamVjdCBtYXkgbm90IGJlIGNhbGxhYmxl
IHNpbmNlIGdldENhbGxEYXRhIGNhbiBzYXkgaXQgaXMgbm90IGNhbGxhYmxlLgotc3RhdGljIGNv
bnN0IHVuc2lnbmVkIE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCA9IDEgPDwgMzsKLXN0YXRp
YyBjb25zdCB1bnNpZ25lZCBPdmVycmlkZXNUb1RoaXMgPSAxIDw8IDQ7IC8vIElmIHRoaXMgaXMg
ZmFsc2UgdGhlbiB0aGlzIHJldHVybnMgc29tZXRoaW5nIG90aGVyIHRoYW4gJ3RoaXMnLiBOb24t
b2JqZWN0IGNlbGxzIHRoYXQgYXJlIHZpc2libGUgdG8gSlMgaGF2ZSB0aGlzIHNldCBhcyBkbyBz
b21lIGV4b3RpYyBvYmplY3RzLgotc3RhdGljIGNvbnN0IHVuc2lnbmVkIEhhc1N0YXRpY1Byb3Bl
cnR5VGFibGUgPSAxIDw8IDU7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgVHlwZUluZm9QZXJDZWxs
Qml0ID0gMSA8PCA3OyAvLyBVbmxpa2Ugb3RoZXIgaW5saW5lIGZsYWdzLCB0aGlzIHdpbGwgb25s
eSBiZSBzZXQgb24gdGhlIGNlbGwgaXRzZWxmIGFuZCB3aWxsIG5vdCBiZSBzZXQgb24gdGhlIFN0
cnVjdHVyZS4KK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgTWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZCA9IDE7IC8vIFdlYkNvcmUgdXNlcyBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHRvIG1ha2UgZG9j
dW1lbnQuYWxsIHVuZGV0ZWN0YWJsZS4KK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgSW1wbGVt
ZW50c0RlZmF1bHRIYXNJbnN0YW5jZSA9IDEgPDwgMTsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgT3ZlcnJpZGVzR2V0Q2FsbERhdGEgPSAxIDw8IDI7IC8vIE5lZWQgdGhpcyBmbGFnIGlmIHlv
dSBpbXBsZW1lbnQgW1tDYWxsYWJsZV1dIGludGVyZmFjZSwgd2hpY2ggbWVhbnMgb3ZlcnJpZGlu
ZyBnZXRDYWxsRGF0YS4gVGhlIG9iamVjdCBtYXkgbm90IGJlIGNhbGxhYmxlIHNpbmNlIGdldENh
bGxEYXRhIGNhbiBzYXkgaXQgaXMgbm90IGNhbGxhYmxlLgorc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgPSAxIDw8IDM7CitzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIE92ZXJyaWRlc1RvVGhpcyA9IDEgPDwgNDsgLy8gSWYgdGhpcyBpcyBmYWxz
ZSB0aGVuIHRoaXMgcmV0dXJucyBzb21ldGhpbmcgb3RoZXIgdGhhbiAndGhpcycuIE5vbi1vYmpl
Y3QgY2VsbHMgdGhhdCBhcmUgdmlzaWJsZSB0byBKUyBoYXZlIHRoaXMgc2V0IGFzIGRvIHNvbWUg
ZXhvdGljIG9iamVjdHMuCitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEhhc1N0YXRpY1Byb3Bl
cnR5VGFibGUgPSAxIDw8IDU7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFR5cGVJbmZvUGVy
Q2VsbEJpdCA9IDEgPDwgNzsgLy8gVW5saWtlIG90aGVyIGlubGluZSBmbGFncywgdGhpcyB3aWxs
IG9ubHkgYmUgc2V0IG9uIHRoZSBjZWxsIGl0c2VsZiBhbmQgd2lsbCBub3QgYmUgc2V0IG9uIHRo
ZSBTdHJ1Y3R1cmUuCiAKIC8vIE91dCBvZiBsaW5lIGZsYWdzLgogCi1zdGF0aWMgY29uc3QgdW5z
aWduZWQgSW1wbGVtZW50c0hhc0luc3RhbmNlID0gMSA8PCA4Owotc3RhdGljIGNvbnN0IHVuc2ln
bmVkIE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgPSAxIDw8IDk7Ci1zdGF0aWMgY29uc3QgdW5z
aWduZWQgUHJvaGliaXRzUHJvcGVydHlDYWNoaW5nID0gMSA8PCAxMDsKLXN0YXRpYyBjb25zdCB1
bnNpZ25lZCBHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSA9IDEgPDwgMTE7Ci1zdGF0aWMgY29u
c3QgdW5zaWduZWQgTmV3SW1wdXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRzID0gMSA8PCAxMjsK
LXN0YXRpYyBjb25zdCB1bnNpZ25lZCBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdCA9
IDEgPDwgMTM7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgR2V0T3duUHJvcGVydHlTbG90SXNJbXB1
cmVGb3JQcm9wZXJ0eUFic2VuY2UgPSAxIDw8IDE0Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIElu
dGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8g
PSAxIDw8IDE1Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUlzSW1tb3J0YWwgPSAx
IDw8IDE2Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIEhhc1B1dFByb3BlcnR5U2VjdXJpdHlDaGVj
ayA9IDEgPDwgMTc7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEltcGxlbWVudHNIYXNJbnN0
YW5jZSA9IDEgPDwgODsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgT3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lcyA9IDEgPDwgOTsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgUHJvaGliaXRz
UHJvcGVydHlDYWNoaW5nID0gMSA8PCAxMDsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgR2V0
T3duUHJvcGVydHlTbG90SXNJbXB1cmUgPSAxIDw8IDExOworc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBOZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMgPSAxIDw8IDEyOworc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdCA9IDEg
PDwgMTM7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEdldE93blByb3BlcnR5U2xvdElzSW1w
dXJlRm9yUHJvcGVydHlBYnNlbmNlID0gMSA8PCAxNDsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90
WmVybyA9IDEgPDwgMTU7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUlzSW1t
b3J0YWwgPSAxIDw8IDE2Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBIYXNQdXRQcm9wZXJ0
eVNlY3VyaXR5Q2hlY2sgPSAxIDw8IDE3OwogCiBjbGFzcyBUeXBlSW5mbyB7CiBwdWJsaWM6Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuaAkocmV2
aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90
eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBNYXBQcm90b3R5cGUgZmlu
YWwgOiBwdWJsaWMgSlNOb25GCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0
IEJhc2U7CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBNYXBQcm90b3R5cGUqIGNyZWF0
ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0
dXJlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01pbmltdW1S
ZXNlcnZlZFpvbmVTaXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWluaW11bVJlc2VydmVkWm9uZVNpemUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWluaW11bVJlc2VydmVkWm9uZVNpemUuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogICAgIAotc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIG1pbmltdW1SZXNlcnZlZFpvbmVTaXplID0gMTYgKiBLQjsKK3N0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgbWluaW11bVJlc2VydmVkWm9uZVNpemUgPSAxNiAqIEtCOwog
ICAgIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01vZHVsZVByb2dyYW1FeGVjdXRhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUuaAkocmV2aXNpb24g
MjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlUHJvZ3JhbUV4
ZWN1dGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDktMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDktMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgTW9kdWxl
UHJvZ3JhbUV4ZWN1dGFibGUgZmluYWwgOiBwdQogICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNl
dHNFeHRyYWN0b3I7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEdsb2JhbEV4ZWN1dGFibGU7
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlz
SW1tb3J0YWw7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nl
c3MgbW9kZT4KICAgICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUV4ZWN1dGFibGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFeGVjdXRhYmxl
LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05h
dGl2ZUV4ZWN1dGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBO
YXRpdmVFeGVjdXRhYmxlIGZpbmFsIDogcHVibGljIEV4CiAgICAgZnJpZW5kIGNsYXNzIExMSW50
T2Zmc2V0c0V4dHJhY3RvcjsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEV4ZWN1dGFibGVCYXNlIEJh
c2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVy
ZUlzSW1tb3J0YWw7CiAKICAgICBzdGF0aWMgTmF0aXZlRXhlY3V0YWJsZSogY3JlYXRlKFZNJiwg
UmVmPEpJVENvZGU+JiYgY2FsbFRodW5rLCBUYWdnZWROYXRpdmVGdW5jdGlvbiwgUmVmPEpJVENv
ZGU+JiYgY29uc3RydWN0VGh1bmssIFRhZ2dlZE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yLCBj
b25zdCBTdHJpbmcmIG5hbWUpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OYXRpdmVGdW5jdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL05hdGl2ZUZ1bmN0aW9uLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUZ1bmN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjAsNyAr
NjAsNyBAQCBwcml2YXRlOgogc3RydWN0IE5hdGl2ZUZ1bmN0aW9uSGFzaCB7CiAgICAgc3RhdGlj
IHVuc2lnbmVkIGhhc2goTmF0aXZlRnVuY3Rpb24ga2V5KSB7IHJldHVybiBJbnRIYXNoPHVpbnRw
dHJfdD46Omhhc2goYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oa2V5KSk7IH0KICAgICBzdGF0aWMg
Ym9vbCBlcXVhbChOYXRpdmVGdW5jdGlvbiBhLCBOYXRpdmVGdW5jdGlvbiBiKSB7IHJldHVybiBh
ID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVs
ZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0Vt
cHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIGNsYXNzIFRhZ2dlZE5hdGl2ZUZ1bmN0aW9uIHsK
QEAgLTk4LDcgKzk4LDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBUYWdnZWROYXRpdmVGdW5jdGlvbkhh
c2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKFRhZ2dlZE5hdGl2ZUZ1bmN0aW9uIGtleSkg
eyByZXR1cm4gSW50SGFzaDx1aW50cHRyX3Q+OjpoYXNoKGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+
KGtleSkpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoVGFnZ2VkTmF0aXZlRnVuY3Rpb24gYSwg
VGFnZ2VkTmF0aXZlRnVuY3Rpb24gYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNv
bnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9
OwogCiBzdGF0aWNfYXNzZXJ0KHNpemVvZihOYXRpdmVGdW5jdGlvbikgPT0gc2l6ZW9mKHZvaWQq
KSwgIiIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlU3RkRnVu
Y3Rpb25DZWxsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TmF0aXZlU3RkRnVuY3Rpb25DZWxsLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZVN0ZEZ1bmN0aW9uQ2VsbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMzLDggKzMzLDggQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBOYXRpdmVTdGRGdW5jdGlvbkNl
bGwgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBC
YXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKLSAgICBzdGF0aWMgY29uc3QgYm9v
bCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9y
dGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsK
IAogICAgIHN0YXRpYyBOYXRpdmVTdGRGdW5jdGlvbkNlbGwqIGNyZWF0ZShWTSYsIE5hdGl2ZVN0
ZEZ1bmN0aW9uJiYpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlckNvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRl
biAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0zMCw3ICszMCw3
IEBAIGNsYXNzIEdldHRlclNldHRlcjsKIGNsYXNzIE51bWJlckNvbnN0cnVjdG9yIGZpbmFsIDog
cHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxG
dW5jdGlvbiBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSGFzU3RhdGlj
UHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBIYXNT
dGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIE51bWJlckNvbnN0cnVjdG9yKiBjcmVh
dGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgTnVtYmVyUHJvdG90eXBlKiBudW1iZXJQ
cm90b3R5cGUsIEdldHRlclNldHRlciopCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk1OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBI
YXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YwpAQCAtMjcsNyArMjcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIE51bWJlclByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBOdW1iZXJPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgTnVt
YmVyT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgTnVtYmVyUHJvdG90
eXBlKiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJp
IFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDE2LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAw
OC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgT2JqZWN0UHJvdG90eXBlOwogY2xhc3MgT2JqZWN0
Q29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAg
ICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBz
dGF0aWMgT2JqZWN0Q29uc3RydWN0b3IqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBPYmplY3RQcm90b3R5cGUqIG9iamVj
dFByb3RvdHlwZSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAo
cG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yNyw3ICsy
Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgT2JqZWN0UHJvdG90eXBlIGZpbmFsIDogcHVi
bGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9i
amVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3Q7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3Q7CiAKICAgICBzdGF0
aWMgT2JqZWN0UHJvdG90eXBlKiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSopOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9ncmFtRXhlY3V0
YWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb2dy
YW1FeGVjdXRhYmxlLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Byb2dyYW1FeGVjdXRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICsz
NCw3IEBAIGNsYXNzIFByb2dyYW1FeGVjdXRhYmxlIGZpbmFsIDogcHVibGljIEcKICAgICBmcmll
bmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogcHVibGljOgogICAgIHVzaW5nIEJhc2Ug
PSBHbG9iYWxFeGVjdXRhYmxlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2Vs
bFR5cGUsIFN1YnNwYWNlQWNjZXNzPgogICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VG
b3IoVk0mIHZtKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlzZURl
ZmVycmVkVGltZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogbmFtZXNwYWNlIFBy
b21pc2VEZWZlcnJlZFRpbWVySW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9
IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogUHJv
bWlzZURlZmVycmVkVGltZXI6OlByb21pc2VEZWZlcnJlZFRpbWVyKFZNJiB2bSkKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlNYXBIYXNoVGFi
bGUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJvcGVydHlNYXBIYXNoVGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtMTIxLDcgKzEyMSw3IEBAIGNsYXNzIFByb3BlcnR5VGFibGUgZmluYWwgOiBwdWJsaWMgSlND
ZWwKIAogcHVibGljOgogICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1
cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+CiAgICAgc3RhdGljIElz
b1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gJnZtLnByb3BlcnR5VGFibGVTcGFjZTsKICAgICB9CiAKLSAgICBz
dGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAgICAgc3RhdGljIHZvaWQgZGVz
dHJveShKU0NlbGwqKTsKIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CkBAIC0yMDIsNyArMjAy
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZJbmRleE1hc2soKSB7
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoUHJvcGVydHlUYWJsZSwgbV9pbmRleE1hc2spOyB9CiAg
ICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkluZGV4KCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKFByb3BlcnR5VGFibGUsIG1faW5kZXgpOyB9CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgRW1wdHlFbnRyeUluZGV4ID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEVt
cHR5RW50cnlJbmRleCA9IDA7CiAKIHByaXZhdGU6CiAgICAgUHJvcGVydHlUYWJsZShWTSYsIHVu
c2lnbmVkIGluaXRpYWxDYXBhY2l0eSk7CkBAIC0yNTgsNyArMjU4LDcgQEAgcHJpdmF0ZToKICAg
ICB1bnNpZ25lZCBtX2RlbGV0ZWRDb3VudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPFBy
b3BlcnR5T2Zmc2V0Pj4gbV9kZWxldGVkT2Zmc2V0czsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBNaW5pbXVtVGFibGVTaXplID0gMTY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBNaW5pbXVtVGFibGVTaXplID0gMTY7CiB9OwogCiBpbmxpbmUgUHJvcGVydHlUYWJsZTo6aXRl
cmF0b3IgUHJvcGVydHlUYWJsZTo6YmVnaW4oKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oCShyZXZpc2lvbiAyNDk5NTkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTUsNyArMTE1LDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIFByb3BlcnR5
TmFtZUFycmF5OjphZAogCiBBTFdBWVNfSU5MSU5FIHZvaWQgUHJvcGVydHlOYW1lQXJyYXk6OmFk
ZChVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRpZmllcikKIHsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgc2V0VGhyZXNob2xkID0gMjA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBz
ZXRUaHJlc2hvbGQgPSAyMDsKIAogICAgIEFTU0VSVChpZGVudGlmaWVyKTsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvdG90eXBlS2V5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvdG90eXBlS2V5LmgJKHJldmlzaW9uIDI0
OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3RvdHlwZUtleS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIAogcHJpdmF0ZToKICAgICAv
LyBXQVJOSU5HOiBXZSByZXF1aXJlIGFsbCBvZiB0aGVzZSBkZWZhdWx0IHZhbHVlcyB0byBiZSB6
ZXJvLiBPdGhlcndpc2UsIHlvdSdsbCBuZWVkIHRvIGFkZAotICAgIC8vICJzdGF0aWMgY29uc3Qg
Ym9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7IiB0byB0aGUgSGFzaFRyYWl0cyBhdCB0aGUg
Ym90dG9tIG9mIHRoaXMgZmlsZS4KKyAgICAvLyAic3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5
VmFsdWVJc1plcm8gPSBmYWxzZTsiIHRvIHRoZSBIYXNoVHJhaXRzIGF0IHRoZSBib3R0b20gb2Yg
dGhpcyBmaWxlLgogICAgIEpTT2JqZWN0KiBtX3Byb3RvdHlwZSB7IG51bGxwdHIgfTsgCiAgICAg
RnVuY3Rpb25FeGVjdXRhYmxlKiBtX2V4ZWN1dGFibGUgeyBudWxscHRyIH07IAogICAgIHVuc2ln
bmVkIG1faW5saW5lQ2FwYWNpdHkgeyAwIH07CkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiBz
dHJ1Y3QgUHJvdG90eXBlS2V5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3Qg
UHJvdG90eXBlS2V5JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9v
bCBlcXVhbChjb25zdCBQcm90b3R5cGVLZXkmIGEsIGNvbnN0IFByb3RvdHlwZUtleSYgYikgeyBy
ZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1w
dHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9y
LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3h5Q29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBK
U0MgewogY2xhc3MgUHJveHlDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0
aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
czsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3M7CiAKICAgICBzdGF0aWMgUHJveHlDb25zdHJ1Y3RvciogY3JlYXRlKFZN
JiwgU3RydWN0dXJlKik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3h5T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eU9iamVjdC5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTc0LDggKzk3
NCw4IEBAIHZvaWQgUHJveHlPYmplY3Q6OnBlcmZvcm1HZXRPd25Qcm9wZXJ0eU4KICAgICAgICAg
QVNTRVJUKHJlc3VsdEZpbHRlcik7CiAKICAgICAgICAgYXV0byBhZGRQcm9wTmFtZSA9IFsmXSAo
SlNWYWx1ZSB2YWx1ZSwgUnVudGltZVR5cGUgdHlwZSkgLT4gYm9vbCB7Ci0gICAgICAgICAgICBz
dGF0aWMgY29uc3QgYm9vbCBkb0V4aXRFYXJseSA9IHRydWU7Ci0gICAgICAgICAgICBzdGF0aWMg
Y29uc3QgYm9vbCBkb250RXhpdEVhcmx5ID0gZmFsc2U7CisgICAgICAgICAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgZG9FeGl0RWFybHkgPSB0cnVlOworICAgICAgICAgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIGRvbnRFeGl0RWFybHkgPSBmYWxzZTsKIAogICAgICAgICAgICAgSWRlbnRpZmll
ciBpZGVudCA9IHZhbHVlLnRvUHJvcGVydHlLZXkoZXhlYyk7CiAgICAgICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBkb0V4aXRFYXJseSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm94eVJldm9rZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQs
NyArMzQsNyBAQCBjbGFzcyBQcm94eU9iamVjdDsKIGNsYXNzIFByb3h5UmV2b2tlIGZpbmFsIDog
cHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxG
dW5jdGlvbiBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2VzcyBtb2RlPgogICAgIHN0YXRpYyBJc29TdWJzcGFj
ZSogc3Vic3BhY2VGb3IoVk0mIHZtKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVmbGVjdE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZmxlY3RPYmplY3QuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVmbGVjdE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcgKzM1
LDcgQEAgcHJpdmF0ZToKIAogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBC
YXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNT
dGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIFJlZmxlY3RPYmplY3QqIGNyZWF0ZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
KQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5oCShyZXZp
c2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5
LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIw
MDcsIDIwMDgsIDIwMDksIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
IENvcHlyaWdodCAoQykgMjAwNy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqICBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAgKgogICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
QEAgLTQzLDEwICs0MywxMCBAQCBjbGFzcyBSZWdFeHAgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
IAogcHVibGljOgogICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJ
c0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICBKU19F
WFBPUlRfUFJJVkFURSBzdGF0aWMgUmVnRXhwKiBjcmVhdGUoVk0mLCBjb25zdCBTdHJpbmcmIHBh
dHRlcm4sIE9wdGlvblNldDxZYXJyOjpGbGFncz4pOwotICAgIHN0YXRpYyBjb25zdCBib29sIG5l
ZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rl
c3RydWN0aW9uID0gdHJ1ZTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogICAg
IHN0YXRpYyBzaXplX3QgZXN0aW1hdGVkU2l6ZShKU0NlbGwqLCBWTSYpOwogICAgIEpTX0VYUE9S
VF9QUklWQVRFIHN0YXRpYyB2b2lkIGR1bXBUb1N0cmVhbShjb25zdCBKU0NlbGwqLCBQcmludFN0
cmVhbSYpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNo
ZS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0
IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUmVu
YXRhIEhvZG92YW4gKGhvZG92YW5AaW5mLnUtc3plZ2VkLmh1KQogICogQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDkgKzYwLDkgQEAgcHVi
bGljOgogCiBwcml2YXRlOgogICAgIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhTdHJv
bmdDYWNoZWFibGVQYXR0ZXJuTGVuZ3RoID0gMjU2OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgbWF4U3Ryb25nQ2FjaGVhYmxlUGF0dGVybkxlbmd0aCA9IDI1NjsKIAotICAgIHN0YXRp
YyBjb25zdCBpbnQgbWF4U3Ryb25nQ2FjaGVhYmxlRW50cmllcyA9IDMyOworICAgIHN0YXRpYyBj
b25zdGV4cHIgaW50IG1heFN0cm9uZ0NhY2hlYWJsZUVudHJpZXMgPSAzMjsKIAogICAgIHZvaWQg
ZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2b2lkKiBjb250ZXh0KSBvdmVycmlkZTsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rv
ci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAq
ICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQot
ICogIENvcHlyaWdodCAoQykgMjAwMy0yMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIEdldHRl
clNldHRlcjsKIGNsYXNzIFJlZ0V4cENvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFs
RnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNlOwot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQ
cm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIFJlZ0V4cENvbnN0cnVjdG9yKiBjcmVhdGUoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnRXhwUHJvdG90eXBlKiByZWdFeHBQcm90b3R5
cGUsIEdldHRlclNldHRlciogc3BlY2llcykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBLZXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBLZXkuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwS2V5LmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNiAr
Miw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVW5pdmVyc2l0eSBvZiBTemVnZWQKICAqIENv
cHlyaWdodCAoQykgMjAxMCBSZW5hdGEgSG9kb3ZhbiAoaG9kb3ZhbkBpbmYudS1zemVnZWQuaHUp
CiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNjksNyArNzAsNyBAQCBzdHJ1Y3QgUmVnRXhwS2V5IHsKICAgICBzdHJ1Y3QgSGFzaCB7CiAg
ICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFJlZ0V4cEtleSYga2V5KSB7IHJldHVy
biBrZXkucGF0dGVybi0+aGFzaCgpOyB9CiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0
IFJlZ0V4cEtleSYgYSwgY29uc3QgUmVnRXhwS2V5JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAg
ICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBm
YWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5
T3JEZWxldGVkID0gZmFsc2U7CiAgICAgfTsKIH07CiAKQEAgLTk0LDcgKzk1LDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpSZWdFeAogfTsKIAogdGVtcGxhdGU8PiBzdHJ1
Y3QgSGFzaFRyYWl0czxKU0M6OlJlZ0V4cEtleT4gOiBHZW5lcmljSGFzaFRyYWl0czxKU0M6OlJl
Z0V4cEtleT4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1ZTsKICAg
ICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoSlNDOjpSZWdFeHBLZXkmIHNsb3Qp
IHsgc2xvdC5mbGFnc1ZhbHVlID0gSlNDOjpZYXJyOjpGbGFnczo6RGVsZXRlZFZhbHVlOyB9CiAg
ICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgSlNDOjpSZWdFeHBLZXkmIHZhbHVl
KSB7IHJldHVybiB2YWx1ZS5mbGFnc1ZhbHVlID09IEpTQzo6WWFycjo6RmxhZ3M6OkRlbGV0ZWRW
YWx1ZTsgfQogfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAg
KiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykK
LSAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDctMjAwOCwgMjAxMiwgMjAxNiBBcHBsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTkgQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzAsNyAr
MzAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFJlZ0V4cE9iamVjdCBmaW5hbCA6IHB1Ymxp
YyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5h
bE9iamVjdDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludHB0cl90IGxhc3RJbmRleElzTm90V3JpdGFibGVGbGFnID0gMTsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmgJKHJldmlzaW9u
IDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlw
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMp
IDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAo
QykgMjAwMywgMjAwNy0yMDA4LCAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogY2xhc3MgUmVnRXhwUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qg
ewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKIAogICAgIHN0YXRpYyBSZWdFeHBQcm90b3R5cGUqIGNyZWF0ZShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAg
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFN0cmluZ0l0ZXJh
dG9yUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwU3RyaW5nSXRlcmF0b3JQcm90b3R5
cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQWxleGV5IFNodmF5a2EgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4uCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xh
c3MgUmVnRXhwU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1By
b3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgUmVnRXhwU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUq
IGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nh
bXBsaW5nUHJvZmlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjUsOCArNjUsOCBAQCBzdGF0aWMgZG91YmxlIHNOdW1Ub3RhbFdhbGtzID0gMDsKIHN0
YXRpYyBkb3VibGUgc051bUZhaWxlZFdhbGtzID0gMDsKIHN0YXRpYyBjb25zdCB1aW50MzJfdCBz
TnVtV2Fsa1JlcG9ydGluZ0ZyZXF1ZW5jeSA9IDUwOwogc3RhdGljIGNvbnN0IGRvdWJsZSBzV2Fs
a0Vycm9yUGVyY2VudGFnZSA9IC4wNTsKLXN0YXRpYyBjb25zdCBib29sIHNSZXBvcnRTdGF0c09u
bHlXaGVuVGhleXJlQWJvdmVUaHJlc2hvbGQgPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBib29sIHNS
ZXBvcnRTdGF0cyA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHNSZXBvcnRTdGF0c09u
bHlXaGVuVGhleXJlQWJvdmVUaHJlc2hvbGQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9v
bCBzUmVwb3J0U3RhdHMgPSBmYWxzZTsKIAogdXNpbmcgRnJhbWVUeXBlID0gU2FtcGxpbmdQcm9m
aWxlcjo6RnJhbWVUeXBlOwogdXNpbmcgVW5wcm9jZXNzZWRTdGFja0ZyYW1lID0gU2FtcGxpbmdQ
cm9maWxlcjo6VW5wcm9jZXNzZWRTdGFja0ZyYW1lOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzVGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZWRBcmd1bWVudHNUYWJsZS5oCShyZXZpc2lvbiAy
NDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZWRBcmd1bWVudHNU
YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBTY29wZWRBcmd1
bWVudHNUYWJsZSBmaW5hbCA6IHB1YmxpCiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBC
YXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1
cmVJc0ltbW9ydGFsOwogICAgIAogcHJpdmF0ZToKICAgICBTY29wZWRBcmd1bWVudHNUYWJsZShW
TSYpOwpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFNjb3BlZEFyZ3VtZW50
c1RhYmxlKiBjcmVhdGUoVk0mKTsKICAgICBzdGF0aWMgU2NvcGVkQXJndW1lbnRzVGFibGUqIGNy
ZWF0ZShWTSYsIHVpbnQzMl90IGxlbmd0aCk7CiAgICAgCi0gICAgc3RhdGljIGNvbnN0IGJvb2wg
bmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRz
RGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAK
ICAgICBTY29wZWRBcmd1bWVudHNUYWJsZSogY2xvbmUoVk0mKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmgJKHJldmlzaW9uIDI0
OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBJc29DZWxsU2V0OwogY2xh
c3MgU2NyaXB0RXhlY3V0YWJsZSA6IHB1YmxpYyBFeGVjdXRhYmxlQmFzZSB7CiBwdWJsaWM6CiAg
ICAgdHlwZWRlZiBFeGVjdXRhYmxlQmFzZSBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAog
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NldFByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NldFByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRQcm90b3R5cGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zMyw3ICszMyw3IEBAIGNsYXNzIFNldFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkYK
IHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKIAotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRh
YmxlOwogCiAgICAgc3RhdGljIFNldFByb3RvdHlwZSogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmgJKHJldmlzaW9u
IDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OC0yMDA5LCAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFZNOwog
Y2xhc3MgSlNTdHJpbmc7CiBjbGFzcyBTbG90VmlzaXRvcjsKIAotc3RhdGljIGNvbnN0IHVuc2ln
bmVkIG1heFNpbmdsZUNoYXJhY3RlclN0cmluZyA9IDB4RkY7CitzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG1heFNpbmdsZUNoYXJhY3RlclN0cmluZyA9IDB4RkY7CiAKIGNsYXNzIFNtYWxsU3Ry
aW5ncyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU21hbGxTdHJpbmdzKTsKQEAgLTEyNSw3
ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBzaW5nbGVDaGFyYWN0ZXJTdHJpbmdDb3VudCA9IG1heFNpbmdsZUNoYXJhY3RlclN0
cmluZyArIDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzaW5nbGVDaGFyYWN0ZXJT
dHJpbmdDb3VudCA9IG1heFNpbmdsZUNoYXJhY3RlclN0cmluZyArIDE7CiAKICAgICB2b2lkIGlu
aXRpYWxpemUoVk0qLCBKU1N0cmluZyomLCBjb25zdCBjaGFyKiB2YWx1ZSk7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFw
LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nw
YXJzZUFycmF5VmFsdWVNYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc5LDcgKzc5LDcgQEAgcHJp
dmF0ZToKIGNsYXNzIFNwYXJzZUFycmF5VmFsdWVNYXAgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
IHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJ
bW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogICAgIAogcHJpdmF0
ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFNwYXJzZUFycmF5RW50cnksIFdURjo6
SW50SGFzaDx1aW50NjRfdD4sIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWlu
dDY0X3Q+PiBNYXA7CkBAIC0xMDMsNyArMTAzLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFNw
YXJzZUFycmF5VmFsdWVNYXAqIGNyZWF0ZShWTSYpOwogICAgIAotICAgIHN0YXRpYyBjb25zdCBi
b29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBu
ZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCop
OwogICAgIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xv
YmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NTkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTkt
MjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAw
NywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChD
KSAyMDA3LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYwpAQCAtMzAsNyArMzAsNyBAQCBjbGFzcyBHZXR0ZXJTZXR0ZXI7CiBjbGFzcyBTdHJp
bmdDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1By
b3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAg
IHN0YXRpYyBTdHJpbmdDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIFN0cmluZ1Byb3RvdHlwZSogc3RyaW5nUHJvdG90eXBlLCBHZXR0ZXJTZXR0ZXIqKQog
ICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0l0ZXJhdG9y
UHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxl
LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgWXVzdWtl
IFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTMz
LDcgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBTdHJpbmdJdGVyYXRvclByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVm
IEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBTdHJp
bmdJdGVyYXRvclByb3RvdHlwZSogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgJKHJldmlzaW9uIDI0OTk1OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgU3RyaW5nT2JqZWN0
IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpT
V3JhcHBlck9iamVjdDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IElu
dGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8g
fCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldo
ZW5MZW5ndGhJc05vdFplcm8gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogCiAgICAgc3Rh
dGljIFN0cmluZ09iamVjdCogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAg
ICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoK
ICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3Jn
KQotICogIENvcHlyaWdodCAoQykgMjAwNy0yMDA4LCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0zNSw3ICszNSw3
IEBAIHByaXZhdGU6CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIFN0cmluZ09iamVjdCBCYXNlOwot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQ
cm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIFN0cmluZ1Byb3RvdHlwZSogY3JlYXRlKFZNJiwg
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSwxMSAr
NjUsMTEgQEAgc3RydWN0IER1bXBDb250ZXh0OwogLy8gVGhlIG91dC1vZi1saW5lIHByb3BlcnR5
IHN0b3JhZ2UgY2FwYWNpdHkgdG8gdXNlIHdoZW4gZmlyc3QgYWxsb2NhdGluZyBvdXQtb2YtbGlu
ZQogLy8gc3RvcmFnZS4gTm90ZSB0aGF0IGFsbCBvYmplY3RzIHN0YXJ0IG91dCB3aXRob3V0IGhh
dmluZyBhbnkgb3V0LW9mLWxpbmUgc3RvcmFnZTsKIC8vIHRoaXMgY29tZXMgaW50byBwbGF5IG9u
bHkgb24gdGhlIGZpcnN0IHByb3BlcnR5IHN0b3JlIHRoYXQgZXhoYXVzdHMgaW5saW5lIHN0b3Jh
Z2UuCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgaW5pdGlhbE91dE9mTGluZUNhcGFjaXR5ID0gNDsK
K3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaW5pdGlhbE91dE9mTGluZUNhcGFjaXR5ID0gNDsK
IAogLy8gVGhlIGZhY3RvciBieSB3aGljaCB0byBncm93IG91dC1vZi1saW5lIHN0b3JhZ2Ugd2hl
biBpdCBpcyBleGhhdXN0ZWQsIGFmdGVyIHRoZQogLy8gaW5pdGlhbCBhbGxvY2F0aW9uLgotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIG91dE9mTGluZUdyb3d0aEZhY3RvciA9IDI7CitzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIG91dE9mTGluZUdyb3d0aEZhY3RvciA9IDI7CiAKIHN0cnVjdCBQcm9w
ZXJ0eU1hcEVudHJ5IHsKICAgICBVbmlxdWVkU3RyaW5nSW1wbCoga2V5OwpAQCAtMTI0LDcgKzEy
NCw3IEBAIHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3MgU3RydWN0dXJlVHJhbnNpdGlvblRhYmxl
OwogCiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0
YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKICAgICAKICAgICBlbnVtIFBv
bHlQcm90b1RhZyB7IFBvbHlQcm90byB9OwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZShW
TSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IFR5cGVJbmZvJiwg
Y29uc3QgQ2xhc3NJbmZvKiwgSW5kZXhpbmdUeXBlID0gTm9uQXJyYXksIHVuc2lnbmVkIGlubGlu
ZUNhcGFjaXR5ID0gMCk7CkBAIC0yMDEsNyArMjAxLDcgQEAgcHVibGljOgogCiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgU3RydWN0dXJlKiBmbGF0dGVuRGljdGlvbmFyeVN0cnVjdHVyZShWTSYsIEpT
T2JqZWN0Kik7CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1
ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAg
ICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAogICAgIC8vIFZlcnNpb25zIHRoYXQg
dGFrZSBhIGZ1bmMgd2lsbCBjYWxsIGl0IGFmdGVyIG1ha2luZyB0aGUgY2hhbmdlIGJ1dCB3aGls
ZSBzdGlsbCBob2xkaW5nCkBAIC02MjcsOCArNjI3LDggQEAgcHJpdmF0ZToKIAogcHVibGljOgog
I2RlZmluZSBERUZJTkVfQklURklFTEQodHlwZSwgbG93ZXJOYW1lLCB1cHBlck5hbWUsIHdpZHRo
LCBvZmZzZXQpIFwKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc18jI2xvd2VyTmFtZSMjU2hp
ZnQgPSBvZmZzZXQ7XAotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzXyMjbG93ZXJOYW1lIyNN
YXNrID0gKCgxIDw8ICh3aWR0aCAtIDEpKSB8ICgoMSA8PCAod2lkdGggLSAxKSkgLSAxKSk7XAor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3Qgc18jI2xvd2VyTmFtZSMjU2hpZnQgPSBvZmZz
ZXQ7XAorICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3Qgc18jI2xvd2VyTmFtZSMjTWFzayA9
ICgoMSA8PCAod2lkdGggLSAxKSkgfCAoKDEgPDwgKHdpZHRoIC0gMSkpIC0gMSkpO1wKICAgICB0
eXBlIGxvd2VyTmFtZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGU+KChtX2JpdEZp
ZWxkID4+IG9mZnNldCkgJiBzXyMjbG93ZXJOYW1lIyNNYXNrKTsgfVwKICAgICB2b2lkIHNldCMj
dXBwZXJOYW1lKHR5cGUgbmV3VmFsdWUpIFwKICAgICB7XApAQCAtNzQ4LDggKzc0OCw4IEBAIHBy
aXZhdGU6CiAgICAgCiAgICAgdm9pZCBzdGFydFdhdGNoaW5nSW50ZXJuYWxQcm9wZXJ0aWVzKFZN
Jik7CiAKLSAgICBzdGF0aWMgY29uc3QgaW50IHNfbWF4VHJhbnNpdGlvbkxlbmd0aCA9IDY0Owot
ICAgIHN0YXRpYyBjb25zdCBpbnQgc19tYXhUcmFuc2l0aW9uTGVuZ3RoRm9yTm9uRXZhbFB1dEJ5
SWQgPSA1MTI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgc19tYXhUcmFuc2l0aW9uTGVuZ3Ro
ID0gNjQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgc19tYXhUcmFuc2l0aW9uTGVuZ3RoRm9y
Tm9uRXZhbFB1dEJ5SWQgPSA1MTI7CiAKICAgICAvLyBUaGVzZSBuZWVkIHRvIGJlIHByb3Blcmx5
IGFsaWduZWQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgJ1N0cnVjdHVyZScKICAgICAvLyBwYXJ0
IG9mIHRoZSBvYmplY3QuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmVDaGFpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUNoYWluLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNyArNDEsNyBA
QCBjbGFzcyBTdHJ1Y3R1cmVDaGFpbiBmaW5hbCA6IHB1YmxpYyBKU0NlCiAKIHB1YmxpYzoKICAg
ICB1c2luZyBCYXNlID0gSlNDZWxsOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZUNo
YWluKiBjcmVhdGUoVk0mLCBKU09iamVjdCopOwogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+
KiBoZWFkKCkgeyByZXR1cm4gbV92ZWN0b3IuZ2V0KCk7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaAkocmV2aXNpb24gMjQ5
OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIE9iamVjdFRvU3RyaW5n
QWRhcHRpdmVTdHJ1Y3R1cmVXYXQKIGNsYXNzIFN0cnVjdHVyZVJhcmVEYXRhIGZpbmFsIDogcHVi
bGljIEpTQ2VsbCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsK
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2Vzcz4KICAgICBz
dGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKQEAgLTUxLDcgKzUxLDcgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIFN0cnVjdHVyZVJhcmVEYXRhKiBjcmVhdGUoVk0mLCBTdHJ1
Y3R1cmUqKTsKIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKICAg
ICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCiAgICAgc3RhdGljIHZvaWQgdmlzaXRD
aGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmgJKHJl
dmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZVRyYW5zaXRpb25UYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogY2xhc3MgSlNDZWxsOwogY2xhc3MgU3RydWN0dXJlOwogCi1zdGF0aWMgY29u
c3QgdW5zaWduZWQgRmlyc3RJbnRlcm5hbEF0dHJpYnV0ZSA9IDEgPDwgNjsgLy8gVXNlIGZvciB0
cmFuc2l0aW9ucyB0aGF0IGRvbid0IGhhdmUgdG8gZG8gd2l0aCBwcm9wZXJ0eSBhZGRpdGlvbnMu
CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEZpcnN0SW50ZXJuYWxBdHRyaWJ1dGUgPSAxIDw8
IDY7IC8vIFVzZSBmb3IgdHJhbnNpdGlvbnMgdGhhdCBkb24ndCBoYXZlIHRvIGRvIHdpdGggcHJv
cGVydHkgYWRkaXRpb25zLgogCiAvLyBTdXBwb3J0IGZvciBhdHRyaWJ1dGVzIHVzZWQgdG8gaW5k
aWNhdGUgdHJhbnNpdGlvbnMgbm90IHJlbGF0ZWQgdG8gcHJvcGVydGllcy4KIC8vIElmIGFueSBv
ZiB0aGVzZSBhcmUgdXNlZCwgdGhlIHN0cmluZyBwb3J0aW9uIG9mIHRoZSBrZXkgc2hvdWxkIGJl
IDAuCkBAIC0xNDAsNyArMTQwLDcgQEAgaW5saW5lIGJvb2wgc2V0c1JlYWRPbmx5T25Ob25BY2Nl
c3NvclBybwogfQogCiBjbGFzcyBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUgewotICAgIHN0YXRp
YyBjb25zdCBpbnRwdHJfdCBVc2luZ1NpbmdsZVNsb3RGbGFnID0gMTsKKyAgICBzdGF0aWMgY29u
c3RleHByIGludHB0cl90IFVzaW5nU2luZ2xlU2xvdEZsYWcgPSAxOwogCiAgICAgCiAgICAgc3Ry
dWN0IEhhc2ggewpAQCAtMTU2LDcgKzE1Niw3IEBAIGNsYXNzIFN0cnVjdHVyZVRyYW5zaXRpb25U
YWJsZSB7CiAgICAgICAgICAgICByZXR1cm4gYSA9PSBiOwogICAgICAgICB9CiAKLSAgICAgICAg
c3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwor
ICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSB0cnVlOwogICAgIH07CiAKICAgICB0eXBlZGVmIFdlYWtHQ01hcDxIYXNoOjpLZXksIFN0
cnVjdHVyZSwgSGFzaD4gVHJhbnNpdGlvbk1hcDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N5bWJvbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N5bWJvbC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TeW1ib2wuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzQsMTEgKzM0LDExIEBAIG5hbWVz
cGFjZSBKU0MgewogY2xhc3MgU3ltYm9sIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWwg
fCBPdmVycmlkZXNUb1RoaXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbCB8IE92
ZXJyaWRlc1RvVGhpczsKIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKLSAgICBzdGF0aWMg
Y29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TeW1ib2xDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6
dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzYsNyAr
MzYsNyBAQCBjbGFzcyBHZXR0ZXJTZXR0ZXI7CiBjbGFzcyBTeW1ib2xDb25zdHJ1Y3RvciBmaW5h
bCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVy
bmFsRnVuY3Rpb24gQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBTeW1ib2xDb25z
dHJ1Y3RvciogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFN5bWJvbFByb3Rv
dHlwZSogcHJvdG90eXBlLCBHZXR0ZXJTZXR0ZXIqKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5
NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDE1
IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgU3ltYm9sUHJvdG90eXBl
IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYg
SlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIFN5bWJv
bFByb3RvdHlwZSogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sVGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TeW1ib2xUYWJsZS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMi0yMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNDMzLDcgKzQzMyw3IEBAIHByaXZhdGU6CiB9OwogCiBzdHJ1Y3QgU3ltYm9sVGFi
bGVJbmRleEhhc2hUcmFpdHMgOiBIYXNoVHJhaXRzPFN5bWJvbFRhYmxlRW50cnk+IHsKLSAgICBz
dGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiB9OwogCiBjbGFzcyBTeW1ib2xU
YWJsZSBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewpAQCAtNDQxLDcgKzQ0MSw3IEBAIGNsYXNzIFN5
bWJvbFRhYmxlIGZpbmFsIDogcHVibGljIEpTQ2VsbCAKIAogcHVibGljOgogICAgIHR5cGVkZWYg
SlNDZWxsIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFVuaXF1
ZWRTdHJpbmdJbXBsPiwgU3ltYm9sVGFibGVFbnRyeSwgSWRlbnRpZmllclJlcEhhc2gsIEhhc2hU
cmFpdHM8UmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPj4sIFN5bWJvbFRhYmxlSW5kZXhIYXNoVHJh
aXRzPiBNYXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4s
IEdsb2JhbFZhcmlhYmxlSUQsIElkZW50aWZpZXJSZXBIYXNoPiBVbmlxdWVJRE1hcDsKQEAgLTQ2
Miw3ICs0NjIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzeW1ib2xUYWJsZTsKICAgICB9
CiAgICAgCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0
YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvdHlwZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBsYXRl
T2JqZWN0RGVzY3JpcHRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1RlbXBsYXRlT2JqZWN0RGVzY3JpcHRvci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wbGF0ZU9iamVjdERlc2NyaXB0b3IuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
WXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTU5LDcgKzYwLDcgQEAgcHVibGljOgogICAgIHN0cnVjdCBIYXNoZXIg
ewogICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBUZW1wbGF0ZU9iamVjdERlc2Ny
aXB0b3ImIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBl
cXVhbChjb25zdCBUZW1wbGF0ZU9iamVjdERlc2NyaXB0b3ImIGEsIGNvbnN0IFRlbXBsYXRlT2Jq
ZWN0RGVzY3JpcHRvciYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgICAgIHN0YXRpYyBjb25z
dCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAgICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNl
OwogICAgIH07CiAKICAgICBzdGF0aWMgdW5zaWduZWQgY2FsY3VsYXRlSGFzaChjb25zdCBTdHJp
bmdWZWN0b3ImIHJhd1N0cmluZ3MpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVHlwZVByb2ZpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UeXBlUHJvZmlsZXIuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDcg
KzMzLDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiBuYW1lc3BhY2UgVHlwZVByb2ZpbGVySW50ZXJu
YWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhw
ciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogVHlwZVByb2ZpbGVyOjpUeXBlUHJvZmlsZXIo
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmgJ
KHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQ
cm9maWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTkwLDcgKzkwLDcgQEAgc3RydWN0IFF1ZXJ5S2V5IHsK
IHN0cnVjdCBRdWVyeUtleUhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFF1
ZXJ5S2V5JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVh
bChjb25zdCBRdWVyeUtleSYgYSwgY29uc3QgUXVlcnlLZXkmIGIpIHsgcmV0dXJuIGEgPT0gYjsg
fQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0g
dHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRl
bGV0ZWQgPSB0cnVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkBAIC0xMDQsNyArMTA0LDcg
QEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpRdWVyeQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFp
dHM8SlNDOjpRdWVyeUtleT4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpRdWVyeUtleT4g
ewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBl
UHJvZmlsZXJMb2cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1R5cGVQcm9maWxlckxvZy5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlckxvZy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcs
NyArMzcsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIG5hbWVzcGFjZSBUeXBlUHJvZmlsZXJMb2dJ
bnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29u
c3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiBUeXBlUHJvZmlsZXJMb2c6OlR5cGVQ
cm9maWxlckxvZyhWTSYgdm0pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
YXJPZmZzZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
YXJPZmZzZXQuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVmFyT2Zmc2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjIxLDcgKzIyMSw3IEBAIHByaXZhdGU6
CiBzdHJ1Y3QgVmFyT2Zmc2V0SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3Qg
VmFyT2Zmc2V0JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBl
cXVhbChjb25zdCBWYXJPZmZzZXQmIGEsIGNvbnN0IFZhck9mZnNldCYgYikgeyByZXR1cm4gYSA9
PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0
eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKQEAgLTIzNyw3ICsy
MzcsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxKU0M6OlZhck9mCiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFz
aFRyYWl0czxKU0M6OlZhck9mZnNldD4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpWYXJP
ZmZzZXQ+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0hlYXBWZXJpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rv
b2xzL0hlYXBWZXJpZmllci5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90b29scy9IZWFwVmVyaWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDgsNyAr
NDA4LDcgQEAgdm9pZCBIZWFwVmVyaWZpZXI6OmNoZWNrSWZSZWNvcmRlZChIZWFwQwogewogICAg
IGJvb2wgZm91bmQgPSBmYWxzZTsKICAgICBjb25zdCBjaGFyKiBjb25zdCBwcmVmaXggPSAiICAi
OwotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSB0cnVlOworICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCB2ZXJib3NlID0gdHJ1ZTsKIAogICAgIGZvciAoaW50IGN5Y2xlSW5kZXggPSAw
OyBjeWNsZUluZGV4ID4gLW1fbnVtYmVyT2ZDeWNsZXM7IGN5Y2xlSW5kZXgtLSkgewogICAgICAg
ICBHQ0N5Y2xlJiBjeWNsZSA9IGN5Y2xlRm9ySW5kZXgoY3ljbGVJbmRleCk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCShyZXZpc2lvbiAyNDk5NTkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3OSw3ICsyNzksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdHlwZWRlZiBK
U05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVj
dGlvbiA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9u
ID0gZmFsc2U7CiAKICAgICBzdGF0aWMgU2ltcGxlT2JqZWN0KiBjcmVhdGUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKQEAgLTMzMiw3ICszMzIsNyBAQCBwdWJs
aWM6CiAKICAgICBERUNMQVJFX0lORk87CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJh
c2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlIHwgSlNDOjpPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Q7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0
eVNsb3RJc0ltcHVyZSB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OwogCiAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpAQCAtNDAwLDcgKzQwMCw3
IEBAIHB1YmxpYzoKIAogICAgIERFQ0xBUkVfSU5GTzsKICAgICB0eXBlZGVmIEpTTm9uRmluYWxP
YmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90Owor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OwogCiAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpAQCAtNDcxLDcgKzQ3MSw3IEBA
IHByaXZhdGU6CiBjbGFzcyBSdW50aW1lQXJyYXkgOiBwdWJsaWMgSlNBcnJheSB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBKU0FycmF5IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVu
Z3RoSXNOb3RaZXJvIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90
QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1l
czsKIAogICAgIHN0YXRpYyBSdW50aW1lQXJyYXkqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgewpAQCAtNDkzLDcgKzQ5Myw3IEBAIHB1YmxpYzoKICAgICAgICAgc3RhdGljX2Nhc3Q8UnVu
dGltZUFycmF5Kj4oY2VsbCktPlJ1bnRpbWVBcnJheTo6flJ1bnRpbWVBcnJheSgpOwogICAgIH0K
IAotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOwogCiAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSog
ZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogICAg
IHsKQEAgLTU5Niw3ICs1OTYsNyBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJFX0lORk87CiAgICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpAQCAtNjQ4LDcgKzY0
OCw3IEBAIHB1YmxpYzoKIAogICAgIERFQ0xBUkVfSU5GTzsKICAgICB0eXBlZGVmIERPTUpJVE5v
ZGUgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICB7CkBAIC03MzksNyArNzM5LDcgQEAgcHVibGljOgogCiAgICAg
REVDTEFSRV9JTkZPOwogICAgIHR5cGVkZWYgRE9NSklUTm9kZSBCYXNlOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFnczsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsK
QEAgLTg1OSw3ICs4NTksNyBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJFX0lORk87CiAgICAgdHlw
ZWRlZiBET01KSVROb2RlIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpAQCAtOTM4LDcgKzkzOCw3IEBAIHB1
YmxpYzoKIAogICAgIERFQ0xBUkVfSU5GTzsKICAgICB0eXBlZGVmIERPTUpJVE5vZGUgQmFzZTsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSkKICAgICB7CkBAIC05OTcsNyArOTk3LDcgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9J
TkZPOwogICAgIHVzaW5nIEJhc2UgPSBET01KSVROb2RlOwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsK
IAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKQEAgLTEwOTUs
NyArMTA5NSw3IEBAIHByaXZhdGU6CiBjbGFzcyBKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXIgOiBw
dWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTTm9u
RmluYWxPYmplY3Q7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgSlNUZXN0Q3VzdG9tR2V0
dGVyU2V0dGVyKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIDogQmFzZSh2
bSwgc3RydWN0dXJlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJH
ZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21CM0lSR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3
ICs4MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBCMzsKIAogbmFtZXNwYWNlIHsKIG5hbWVzcGFjZSBX
YXNtQjNJUkdlbmVyYXRvckludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBm
YWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiB9CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAJKHJldmlzaW9u
IDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBXYXNtIHsKIAogbmFtZXNwYWNlIFdhc21CQlFQbGFuSW50ZXJuYWwgewotc3RhdGljIGNvbnN0
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBm
YWxzZTsKIH0KIAogQkJRUGxhbjo6QkJRUGxhbihDb250ZXh0KiBjb250ZXh0LCBSZWY8TW9kdWxl
SW5mb3JtYXRpb24+IGluZm8sIEFzeW5jV29yayB3b3JrLCBDb21wbGV0aW9uVGFzayYmIHRhc2ss
IENyZWF0ZUVtYmVkZGVyV3JhcHBlciYmIGNyZWF0ZUVtYmVkZGVyV3JhcHBlciwgVGhyb3dXYXNt
RXhjZXB0aW9uIHRocm93V2FzbUV4Y2VwdGlvbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwCShyZXZpc2lvbiAy
NDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5k
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTctMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBXYXNtIHsKIAogbmFtZXNwYWNlIHsKIG5hbWVzcGFjZSBXYXNtRmF1bHRTaWdu
YWxIYW5kbGVySW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwor
c3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIH0KIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgJKHJldmlz
aW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBh
cnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgVmVj
dG9yPENvbnRyb2xFbnRyeT4mIGNvbnRyb2xTdGFjaygpIHsgcmV0dXJuIG1fY29udHJvbFN0YWNr
OyB9CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAKICAgICBQYXJ0aWFs
UmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBwYXJzZUJvZHkoKTsKICAgICBQYXJ0aWFsUmVzdWx0
IFdBUk5fVU5VU0VEX1JFVFVSTiBwYXJzZUV4cHJlc3Npb24oKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4uY3BwCShy
ZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HRm9y
T1NSRW50cnlQbGFuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQAogbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAogbmFtZXNwYWNlIFdhc21PTUdGb3JPU1JFbnRy
eVBsYW5JbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0
aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiBPTUdGb3JPU1JFbnRyeVBs
YW46Ok9NR0Zvck9TUkVudHJ5UGxhbihDb250ZXh0KiBjb250ZXh0LCBSZWY8TW9kdWxlPiYmIG1v
ZHVsZSwgUmVmPEJCUUNhbGxlZT4mJiBjYWxsZWUsIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgsIHVp
bnQzMl90IGxvb3BJbmRleCwgTWVtb3J5TW9kZSBtb2RlLCBDb21wbGV0aW9uVGFzayYmIHRhc2sp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwCShyZXZp
c2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE3LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC01MSw3ICs1MSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIFdhc20gewogCiBuYW1lc3BhY2UgV2FzbU9NR1BsYW5JbnRlcm5hbCB7Ci1zdGF0aWMg
Y29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogfQogCiBPTUdQbGFuOjpPTUdQbGFuKENvbnRleHQqIGNvbnRleHQsIFJlZjxN
b2R1bGU+JiYgbW9kdWxlLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4LCBNZW1vcnlNb2RlIG1vZGUs
IENvbXBsZXRpb25UYXNrJiYgdGFzaykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21QbGFuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtUGxhbi5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21QbGFuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ1LDcgKzQ1LDcgQEAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKIG5hbWVzcGFjZSBXYXNtUGxhbkludGVybmFs
IHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIg
Ym9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIFBsYW46OlBsYW4oQ29udGV4dCogY29udGV4dCwg
UmVmPE1vZHVsZUluZm9ybWF0aW9uPiBpbmZvLCBDb21wbGV0aW9uVGFzayYmIHRhc2ssIENyZWF0
ZUVtYmVkZGVyV3JhcHBlciYmIGNyZWF0ZUVtYmVkZGVyV3JhcHBlciwgVGhyb3dXYXNtRXhjZXB0
aW9uIHRocm93V2FzbUV4Y2VwdGlvbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21TaWduYXR1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21TaWduYXR1cmUuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtU2lnbmF0dXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDcg
KzM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAogbmFtZXNwYWNlIHsK
IG5hbWVzcGFjZSBXYXNtU2lnbmF0dXJlSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVy
Ym9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0K
IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNpZ25hdHVyZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TaWduYXR1cmUuaAko
cmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNpZ25h
dHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0cnVjdCBTaWduYXR1
cmVIYXNoIHsKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2lnbmF0dXJlSGFzaCYgcmhzKSBj
b25zdCB7IHJldHVybiBlcXVhbCgqdGhpcywgcmhzKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFs
KGNvbnN0IFNpZ25hdHVyZUhhc2gmIGxocywgY29uc3QgU2lnbmF0dXJlSGFzaCYgcmhzKSB7IHJl
dHVybiBsaHMua2V5ID09IHJocy5rZXkgfHwgKGxocy5rZXkgJiYgcmhzLmtleSAmJiAqbGhzLmtl
eSA9PSAqcmhzLmtleSk7IH0KICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBTaWduYXR1
cmVIYXNoJiBzaWduYXR1cmUpIHsgcmV0dXJuIHNpZ25hdHVyZS5rZXkgPyBzaWduYXR1cmUua2V5
LT5oYXNoKCkgOiAwOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1w
dHlPckRlbGV0ZWQgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29t
cGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCkgY29uc3QgeyByZXR1cm4ga2V5LmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0K
IH07CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxK
U0M6Oldhc206CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwogdGVt
cGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6Oldhc206OlNpZ25hdHVyZUhhc2g+IDogU2lt
cGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6V2FzbTo6U2lnbmF0dXJlSGFzaD4gewotICAgIHN0YXRp
YyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdU
RgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCShy
ZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xp
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgV2FzbSB7CiAKIG5hbWVzcGFjZSBXYXNtV29ya2xpc3RJbnRlcm5hbCB7Ci1zdGF0aWMg
Y29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogfQogCiBjb25zdCBjaGFyKiBXb3JrbGlzdDo6cHJpb3JpdHlTdHJpbmcoUHJp
b3JpdHkgcHJpb3JpdHkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNXZWJBc3NlbWJseSBmaW5hbCA6IHB1YmxpYyBK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9i
amVjdDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFz
U3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5KiBjcmVhdGUo
Vk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNv
ZGVCbG9jay5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5
LDcgQEAgY2xhc3MgUGxhbjsKIGNsYXNzIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2sgZmluYWwgOiBw
dWJsaWMgSlNDZWxsIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFs
OwogCiAgICAgc3RhdGljIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2sqIGNyZWF0ZShWTSYsIFJlZjxX
YXNtOjpDb2RlQmxvY2s+LCBjb25zdCBXYXNtOjpNb2R1bGVJbmZvcm1hdGlvbiYpOwogICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQpAQCAtODQsNyArODQsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2soVk0mLCBSZWY8V2FzbTo6Q29k
ZUJsb2NrPiYmLCBjb25zdCBXYXNtOjpNb2R1bGVJbmZvcm1hdGlvbiYpOwogICAgIERFQ0xBUkVf
RVhQT1JUX0lORk87Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRy
dWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwog
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAgICAgc3RhdGljIHZvaWQgdmlzaXRD
aGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxl
RXJyb3JDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBXZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3Rv
dHlwZTsKIGNsYXNzIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IgZmluYWwgOiBw
dWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1
bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3JDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgV2ViQXNzZW1ibHlD
b21waWxlRXJyb3JQcm90b3R5cGUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBp
bGVFcnJvclByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBXZWJBc3NlbWJseUNv
bXBpbGVFcnJvclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0
YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
IAogICAgIHN0YXRpYyBXZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZSogY3JlYXRlKFZN
JiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24u
aAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlGdW5jdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEsNyArNTEsNyBAQCBwdWJs
aWM6CiAKICAgICBjb25zdCBzdGF0aWMgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFnczsKIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24g
PSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1
ZTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzIG1vZGU+CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNl
Q29uc3RydWN0b3IuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIFdlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGU7CiBj
bGFzcyBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRp
Y1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVj
dG9yKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCBXZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBl
Kik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmgJKHJldmlzaW9u
IDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5z
dGFuY2VQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogY2xhc3MgV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3Qg
QmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFz
U3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBXZWJBc3NlbWJseUluc3RhbmNlUHJv
dG90eXBlKiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNW
YWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxp
bmtFcnJvckNvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5
NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJv
ckNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBXZWJBc3Nl
bWJseUxpbmtFcnJvclByb3RvdHlwZTsKIGNsYXNzIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3Ry
dWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRh
YmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMg
V2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwg
V2ViQXNzZW1ibHlMaW5rRXJyb3JQcm90b3R5cGUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JQcm90b3R5cGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUxpbmtFcnJvclByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvclByb3RvdHlwZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBXZWJBc3NlbWJseUxp
bmtFcnJvclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRp
Y1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAog
ICAgIHN0YXRpYyBXZWJBc3NlbWJseUxpbmtFcnJvclByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5
Q29uc3RydWN0b3IuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzcsNyArMzcsNyBAQCBjbGFzcyBXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZTsKIGNsYXNz
IFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5j
dGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3Bl
cnR5VGFibGU7CiAKICAgICBzdGF0aWMgV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3RvciogY3Jl
YXRlKFZNJiwgU3RydWN0dXJlKiwgV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUqKTsKICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpT
VmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlN
ZW1vcnlQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
Ni0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNz
IFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0
eVRhYmxlOwogCiAgICAgc3RhdGljIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlKiBjcmVhdGUo
Vk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlNb2R1bGVDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIFdlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBl
OwogY2xhc3MgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRl
cm5hbEZ1bmN0aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFz
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVj
dG9yKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCBXZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZSop
OwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2Jq
ZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseU1vZHVsZVByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk1
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJv
dG90eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNs
YXNzIFdlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxP
YmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIFdlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlKiBjcmVh
dGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNv
bnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NTkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNv
bnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvclByb3RvdHlwZTsKIGNsYXNzIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29u
c3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0
eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0
aWMgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiwgU3RydWN0
dXJlKiwgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUqKTsKICAgICBzdGF0aWMgU3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3JQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NTkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclBy
b3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBj
bGFzcyBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFz
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclBy
b3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpT
VmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlU
YWJsZUNvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDI0OTk1OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBXZWJBc3NlbWJseVRh
YmxlUHJvdG90eXBlOwogY2xhc3MgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yIGZpbmFsIDog
cHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxG
dW5jdGlvbiBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIFdlYkFzc2VtYmx5VGFi
bGVDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgV2ViQXNzZW1ibHlUYWJsZVBy
b3RvdHlwZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpT
R2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5oCShyZXZpc2lv
biAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRh
YmxlUHJvdG90eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogY2xhc3MgV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3Qg
QmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFz
U3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBXZWJBc3NlbWJseVRhYmxlUHJvdG90
eXBlKiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1
ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRvSlND
YWxsZWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseVRvSlNDYWxsZWUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUb0pTQ2FsbGVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM2LDcgKzM2LDcgQEAgY2xhc3MgSlNXZWJBc3NlbWJseU1vZHVsZTsKIGNsYXNzIFdlYkFzc2Vt
Ymx5VG9KU0NhbGxlZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoK
ICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7
CiAKICAgICBzdGF0aWMgV2ViQXNzZW1ibHlUb0pTQ2FsbGVlKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1
cmUqLCBKU1dlYkFzc2VtYmx5TW9kdWxlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJyLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA5LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDEwIFBldGVyIFZhcmdhIChwdmFyZ2FAaW5mLnUtc3plZ2VkLmh1KSwg
VW5pdmVyc2l0eSBvZiBTemVnZWQKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNDIs
MTIgKzQyLDEyIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgWWFyciB7CiAjZGVmaW5lIFlh
cnJTdGFja1NwYWNlRm9yQmFja1RyYWNrSW5mb1BhcmVudGhlc2VzIDQKICNkZWZpbmUgWWFyclN0
YWNrU3BhY2VGb3JEb3RTdGFyRW5jbG9zdXJlIDEKIAotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHF1
YW50aWZ5SW5maW5pdGUgPSBVSU5UX01BWDsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBvZmZzZXRO
b01hdGNoID0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOworc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBxdWFudGlmeUluZmluaXRlID0gVUlOVF9NQVg7CitzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIG9mZnNldE5vTWF0Y2ggPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2ln
bmVkPjo6bWF4KCk7CiAKIC8vIFRoZSBiZWxvdyBsaW1pdCByZXN0cmljdHMgdGhlIG51bWJlciBv
ZiAicmVjdXJzaXZlIiBtYXRjaCBjYWxscyBpbiBvcmRlciB0bwogLy8gYXZvaWQgc3BlbmRpbmcg
ZXhwb25lbnRpYWwgdGltZSBvbiBjb21wbGV4IHJlZ3VsYXIgZXhwcmVzc2lvbnMuCi1zdGF0aWMg
Y29uc3QgdW5zaWduZWQgbWF0Y2hMaW1pdCA9IDEwMDAwMDA7CitzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG1hdGNoTGltaXQgPSAxMDAwMDAwOwogCiBlbnVtIEpTUmVnRXhwUmVzdWx0IHsKICAg
ICBKU1JlZ0V4cE1hdGNoID0gMSwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
UGFyc2VyLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDksIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExMTcsNyArMTExNyw3IEBA
IHByaXZhdGU6CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fY2FwdHVyZUdyb3VwTmFtZXM7CiAKICAg
ICAvLyBEZXJpdmVkIGJ5IGVtcGlyaWNhbCB0ZXN0aW5nIG9mIGNvbXBpbGUgdGltZSBpbiBQQ1JF
IGFuZCBXUkVDLgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBNQVhfUEFUVEVSTl9TSVpFID0g
MTAyNCAqIDEwMjQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBNQVhfUEFUVEVSTl9T
SVpFID0gMTAyNCAqIDEwMjQ7CiB9OwogCiAvKgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvZ2VuZXJhdGVZYXJyQ2Fub25pY2FsaXplVW5pY29kZQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9nZW5lcmF0ZVlhcnJDYW5vbmljYWxpemVVbmljb2RlCShy
ZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9nZW5lcmF0ZVlh
cnJDYW5vbmljYWxpemVVbmljb2RlCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogIyEg
L3Vzci9iaW4vZW52IHB5dGhvbgogCi0jIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTYy
LDcgKzE2Miw3IEBAIGNsYXNzIENhbm9uaWNhbGl6ZToKICAgICAgICAgICAgIGZpbGUud3JpdGUo
ImNvbnN0IFVDaGFyMzIgdW5pY29kZUNoYXJhY3RlclNldHtpbmRleDpkfVtdID0ge3sge2NoYXJh
Y3RlcnN9MCB9fTtcbiIuZm9ybWF0KGluZGV4PWksIGNoYXJhY3RlcnM9Y2hhcmFjdGVycykpCiAK
ICAgICAgICAgZmlsZS53cml0ZSgiXG4iKQotICAgICAgICBmaWxlLndyaXRlKCJzdGF0aWMgY29u
c3Qgc2l6ZV90IFVOSUNPREVfQ0FOT05JQ0FMSVpBVElPTl9TRVRTID0ge3NldENvdW50OmR9O1xu
Ii5mb3JtYXQoc2V0Q291bnQ9bGVuKGNoYXJhY3RlclNldHMpKSkKKyAgICAgICAgZmlsZS53cml0
ZSgic3RhdGljIGNvbnN0ZXhwciBzaXplX3QgVU5JQ09ERV9DQU5PTklDQUxJWkFUSU9OX1NFVFMg
PSB7c2V0Q291bnQ6ZH07XG4iLmZvcm1hdChzZXRDb3VudD1sZW4oY2hhcmFjdGVyU2V0cykpKQog
ICAgICAgICBmaWxlLndyaXRlKCJjb25zdCBVQ2hhcjMyKiBjb25zdCB1bmljb2RlQ2hhcmFjdGVy
U2V0SW5mb1tVTklDT0RFX0NBTk9OSUNBTElaQVRJT05fU0VUU10gPSB7XG4iKQogCiAgICAgICAg
IGZvciBpIGluIHJhbmdlKGxlbihjaGFyYWN0ZXJTZXRzKSk6CkluZGV4OiBTb3VyY2UvV1RGL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ5
OTU5KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw3
OSBAQAorMjAxOS0wOS0xNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIGNvbnN0ZXhwciBpbnN0ZWFkIG9mIGNvbnN0IGluIHN5bWJvbCBkZWZpbml0aW9ucyB0
aGF0IGFyZSBvYnZpb3VzbHkgY29uc3RleHByLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3Rm
L0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgICogd3RmL0JpdFZlY3Rvci5oOgorICAgICAg
ICAqIHd0Zi9CaXRtYXAuaDoKKyAgICAgICAgKiB3dGYvQmxvb21GaWx0ZXIuaDoKKyAgICAgICAg
KiB3dGYvQnJpZ2FuZC5oOgorICAgICAgICAqIHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oOgorICAg
ICAgICAqIHd0Zi9Dcm9zc1RocmVhZENvcGllci5oOgorICAgICAgICAqIHd0Zi9DdXJyZW50VGlt
ZS5jcHA6CisgICAgICAgICogd3RmL0RhdGFMb2cuY3BwOgorICAgICAgICAqIHd0Zi9EYXRlTWF0
aC5jcHA6CisgICAgICAgIChXVEY6OmRheXNGcm9tMTk3MFRvWWVhcik6CisgICAgICAgICogd3Rm
L0RlZmVycmFibGVSZWZDb3VudGVkLmg6CisgICAgICAgICogd3RmL0dldFB0ci5oOgorICAgICAg
ICAqIHd0Zi9IYXNoRnVuY3Rpb25zLmg6CisgICAgICAgICogd3RmL0hhc2hNYXAuaDoKKyAgICAg
ICAgKiB3dGYvSGFzaFRhYmxlLmg6CisgICAgICAgICogd3RmL0hhc2hUcmFpdHMuaDoKKyAgICAg
ICAgKiB3dGYvSlNPTlZhbHVlcy5jcHA6CisgICAgICAgICogd3RmL0pTT05WYWx1ZXMuaDoKKyAg
ICAgICAgKiB3dGYvTGlzdEhhc2hTZXQuaDoKKyAgICAgICAgKiB3dGYvTG9jay5oOgorICAgICAg
ICAqIHd0Zi9Mb2NrQWxnb3JpdGhtLmg6CisgICAgICAgICogd3RmL0xvY2tBbGdvcml0aG1Jbmxp
bmVzLmg6CisgICAgICAgIChXVEY6Okhvb2tzPjo6bG9ja1Nsb3cpOgorICAgICAgICAqIHd0Zi9M
b2dnZXIuaDoKKyAgICAgICAgKiB3dGYvTG9nZ2VySGVscGVyLmg6CisgICAgICAgIChXVEY6Okxv
Z2dlckhlbHBlcjo6Y2hpbGRMb2dJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiB3dGYvTWFp
blRocmVhZC5jcHA6CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3JQdHIuaDoKKyAgICAgICAg
KiB3dGYvTW9ub3RvbmljVGltZS5oOgorICAgICAgICAqIHd0Zi9OYXR1cmFsTG9vcHMuaDoKKyAg
ICAgICAgKFdURjo6TmF0dXJhbExvb3BzOjpOYXR1cmFsTG9vcHMpOgorICAgICAgICAqIHd0Zi9P
YmplY3RJZGVudGlmaWVyLmg6CisgICAgICAgICogd3RmL1JBTVNpemUuY3BwOgorICAgICAgICAq
IHd0Zi9SZWYuaDoKKyAgICAgICAgKiB3dGYvUmVmUHRyLmg6CisgICAgICAgICogd3RmL1JldGFp
blB0ci5oOgorICAgICAgICAqIHd0Zi9TY2hlZHVsZVBhaXIuaDoKKyAgICAgICAgKiB3dGYvU3Rh
Y2tTaG90Lmg6CisgICAgICAgICogd3RmL1N0ZExpYkV4dHJhcy5oOgorICAgICAgICAqIHd0Zi9U
aW55UHRyU2V0Lmg6CisgICAgICAgICogd3RmL1VSTC5jcHA6CisgICAgICAgICogd3RmL1VSTEhh
c2guaDoKKyAgICAgICAgKiB3dGYvVVJMUGFyc2VyLmNwcDoKKyAgICAgICAgKFdURjo6VVJMUGFy
c2VyOjpkZWZhdWx0UG9ydEZvclByb3RvY29sKToKKyAgICAgICAgKiB3dGYvVmVjdG9yLmg6Cisg
ICAgICAgICogd3RmL1ZlY3RvclRyYWl0cy5oOgorICAgICAgICAqIHd0Zi9XYWxsVGltZS5oOgor
ICAgICAgICAqIHd0Zi9XZWFrSGFzaFNldC5oOgorICAgICAgICAqIHd0Zi9Xb3JkTG9jay5oOgor
ICAgICAgICAqIHd0Zi9jb2NvYS9DUFVUaW1lQ29jb2EuY3BwOgorICAgICAgICAqIHd0Zi9jb2Nv
YS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbToKKyAgICAgICAgKiB3dGYvcGVyc2lzdGVu
Y2UvUGVyc2lzdGVudERlY29kZXIuaDoKKyAgICAgICAgKiB3dGYvcGVyc2lzdGVuY2UvUGVyc2lz
dGVudEVuY29kZXIuaDoKKyAgICAgICAgKiB3dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oOgorICAg
ICAgICAqIHd0Zi90ZXh0L0NTdHJpbmcuaDoKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdURjo6ZXhwYW5kZWRDYXBhY2l0eSk6CisgICAgICAgICogd3Rm
L3RleHQvU3RyaW5nSGFzaC5oOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuaDoKKyAg
ICAgICAgKiB3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg6CisgICAgICAgIChX
VEY6OnRvSW50ZWdyYWxUeXBlKToKKyAgICAgICAgKiB3dGYvdGV4dC9TeW1ib2xSZWdpc3RyeS5o
OgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRTdHJlYW0uY3BwOgorICAgICAgICAoV1RGOjpoYXNG
cmFjdGlvbnMpOgorICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmluZy5oOgorICAgICAgICAqIHd0
Zi90ZXh0L2NvY29hL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VDb2NvYS5jcHA6CisKIDIw
MTktMDktMTYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZW1vdmUgImdvcGhlciIgZnJvbSBsaXN0IG9mIHNwZWNpYWwgc2NoZW1lcyBpbiBV
UkxQYXJzZXIKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc5LDggKzI3
OSw4IEBAIHB1YmxpYzoKIAogdm9pZCBXVEZSZXBvcnRCYWNrdHJhY2UoKQogewotICAgIHN0YXRp
YyBjb25zdCBpbnQgZnJhbWVzVG9TaG93ID0gMzE7Ci0gICAgc3RhdGljIGNvbnN0IGludCBmcmFt
ZXNUb1NraXAgPSAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IGZyYW1lc1RvU2hvdyA9IDMx
OworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IGZyYW1lc1RvU2tpcCA9IDI7CiAgICAgdm9pZCog
c2FtcGxlc1tmcmFtZXNUb1Nob3cgKyBmcmFtZXNUb1NraXBdOwogICAgIGludCBmcmFtZXMgPSBm
cmFtZXNUb1Nob3cgKyBmcmFtZXNUb1NraXA7CiAKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0F1dG9t
YXRpY1RocmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQXV0b21hdGljVGhy
ZWFkLmNwcAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYvQXV0b21hdGljVGhy
ZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdU
RiB7CiAKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4
cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAKIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+
IEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkKIHsKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL0JpdFZlY3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0JpdFZlY3Rvci5o
CShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV1RGL3d0Zi9CaXRWZWN0b3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTQs
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00ODksNyArNDg5LDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBCaXRW
ZWN0b3JIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBCaXRWZWN0b3ImIHZl
Y3RvcikgeyByZXR1cm4gdmVjdG9yLmhhc2goKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNv
bnN0IEJpdFZlY3RvciYgYSwgY29uc3QgQml0VmVjdG9yJiBiKSB7IHJldHVybiBhID09IGI7IH0K
LSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZh
bHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVs
ZXRlZCA9IGZhbHNlOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IERlZmF1bHRI
YXNoOwpJbmRleDogU291cmNlL1dURi93dGYvQml0bWFwLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvQml0bWFwLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XVEYvd3RmL0Jp
dG1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJp
Z2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwpAQCAtMTIwLDE1ICsxMjAsMTUgQEAgcHVibGljOgogICAgIHVuc2lnbmVk
IGhhc2goKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgd29y
ZFNpemUgPSBzaXplb2YoV29yZFR5cGUpICogODsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
d29yZHMgPSAoYml0bWFwU2l6ZSArIHdvcmRTaXplIC0gMSkgLyB3b3JkU2l6ZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIHdvcmRTaXplID0gc2l6ZW9mKFdvcmRUeXBlKSAqIDg7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB3b3JkcyA9IChiaXRtYXBTaXplICsgd29yZFNp
emUgLSAxKSAvIHdvcmRTaXplOwogCiAgICAgLy8gdGhlIGxpdGVyYWwgJzEnIGlzIG9mIHR5cGUg
c2lnbmVkIGludC4gIFdlIHdhbnQgdG8gdXNlIGFuIHVuc2lnbmVkCiAgICAgLy8gdmVyc2lvbiBv
ZiB0aGUgY29ycmVjdCBzaXplIHdoZW4gZG9pbmcgdGhlIGNhbGN1bGF0aW9ucyBiZWNhdXNlIGlm
CiAgICAgLy8gV29yZFR5cGUgaXMgbGFyZ2VyIHRoYW4gaW50LCAnMSA8PCAzMScgd2lsbCBmaXJz
dCBiZSBzaWduIGV4dGVuZGVkCiAgICAgLy8gYW5kIHRoZW4gY2FzdGVkIHRvIHVuc2lnbmVkLCBt
ZWFuaW5nIHRoYXQgc2V0KDMxKSB3aGVuIFdvcmRUeXBlIGlzCiAgICAgLy8gYSA2NCBiaXQgdW5z
aWduZWQgaW50IHdvdWxkIGdpdmUgMHhmZmZmODAwMAotICAgIHN0YXRpYyBjb25zdCBXb3JkVHlw
ZSBvbmUgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgV29yZFR5cGUgb25lID0gMTsKIAogICAg
IHN0ZDo6YXJyYXk8V29yZFR5cGUsIHdvcmRzPiBiaXRzOwogfTsKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL0Jsb29tRmlsdGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQmxvb21GaWx0
ZXIuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYvQmxvb21GaWx0ZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zOCw3ICszOCw3IEBAIHRlbXBsYXRlIDx1bnNpZ25lZCBrZXlC
aXRzPgogY2xhc3MgQmxvb21GaWx0ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgdGFibGVTaXplID0gMSA8PCBrZXlCaXRz
OworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHRhYmxlU2l6ZSA9IDEgPDwga2V5Qml0czsK
IAogICAgIEJsb29tRmlsdGVyKCk7CiAKQEAgLTYxLDggKzYxLDggQEAgcHVibGljOgogICAgIGJv
b2wgbWF5Q29udGFpbihjb25zdCBTdHJpbmcmIHN0cmluZykgY29uc3QgeyByZXR1cm4gbWF5Q29u
dGFpbihzdHJpbmcuaW1wbCgpLT5oYXNoKCkpOyB9CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIGJpdHNQZXJQb3NpdGlvbiA9IDggKiBzaXplb2YodW5zaWduZWQpOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBrZXlNYXNrID0gKDEgPDwga2V5Qml0cykgLSAxOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgYml0c1BlclBvc2l0aW9uID0gOCAqIHNpemVvZih1
bnNpZ25lZCk7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBrZXlNYXNrID0gKDEgPDwg
a2V5Qml0cykgLSAxOwogICAgIHN0YXRpYyB1bnNpZ25lZCBhcnJheUluZGV4KHVuc2lnbmVkIGtl
eSkgeyByZXR1cm4ga2V5IC8gYml0c1BlclBvc2l0aW9uOyB9CiAgICAgc3RhdGljIHVuc2lnbmVk
IGJpdE1hc2sodW5zaWduZWQga2V5KSB7IHJldHVybiAxIDw8IChrZXkgJSBiaXRzUGVyUG9zaXRp
b24pOyB9CiAgICAgdGVtcGxhdGUgPHNpemVfdCBoYXNoU2l6ZT4gc3RhdGljIHN0ZDo6cGFpcjx1
bnNpZ25lZCwgdW5zaWduZWQ+IGtleXNGcm9tSGFzaChjb25zdCBzdGQ6OmFycmF5PHVpbnQ4X3Qs
IGhhc2hTaXplPiYpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIHRlbXBsYXRlIDx1bnNpZ25lZCBrZXlC
aXRzPgogY2xhc3MgQ291bnRpbmdCbG9vbUZpbHRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCB0YWJsZVNpemUgPSAxIDw8
IGtleUJpdHM7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgdGFibGVTaXplID0gMSA8PCBr
ZXlCaXRzOwogICAgIHN0YXRpYyB1bnNpZ25lZCBtYXhpbXVtQ291bnQoKSB7IHJldHVybiBzdGQ6
Om51bWVyaWNfbGltaXRzPHVpbnQ4X3Q+OjptYXgoKTsgfQogICAgIAogICAgIENvdW50aW5nQmxv
b21GaWx0ZXIoKTsKQEAgLTE4OSw3ICsxODksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0
ZToKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQga2V5TWFzayA9ICgxIDw8IGtleUJpdHMpIC0g
MTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGtleU1hc2sgPSAoMSA8PCBrZXlCaXRz
KSAtIDE7CiAKICAgICB1aW50OF90JiBmaXJzdEJ1Y2tldCh1bnNpZ25lZCBoYXNoKSB7IHJldHVy
biBtX2J1Y2tldHNbaGFzaCAmIGtleU1hc2tdOyB9CiAgICAgdWludDhfdCYgc2Vjb25kQnVja2V0
KHVuc2lnbmVkIGhhc2gpIHsgcmV0dXJuIG1fYnVja2V0c1soaGFzaCA+PiAxNikgJiBrZXlNYXNr
XTsgfQpJbmRleDogU291cmNlL1dURi93dGYvQnJpZ2FuZC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL0JyaWdhbmQuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYv
QnJpZ2FuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODIsNyArMjgyLDcgQEAgbmFtZXNwYWNlIGRl
dGFpbAogICAgICAgICBzdGF0aWMgYXV0byB0ZXN0KFAgKiBwKSAtPiBkZWNsdHlwZShDOjphdCgq
cCksIHN0ZDo6dHJ1ZV90eXBlKCkpOwogICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUsIHR5cGVu
YW1lPgogICAgICAgICBzdGF0aWMgc3RkOjpmYWxzZV90eXBlIHRlc3QoLi4uKTsKLSAgICAgICAg
c3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBzdGQ6OmlzX3NhbWU8c3RkOjp0cnVlX3R5cGUsIGRl
Y2x0eXBlKHRlc3Q8VCwgZHVtbXk+KG51bGxwdHIpKT46OnZhbHVlOworICAgICAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgdmFsdWUgPSBzdGQ6OmlzX3NhbWU8c3RkOjp0cnVlX3R5cGUsIGRlY2x0
eXBlKHRlc3Q8VCwgZHVtbXk+KG51bGxwdHIpKT46OnZhbHVlOwogICAgIH07CiAgICAgdGVtcGxh
dGUgPGNsYXNzIEwsIHR5cGVuYW1lIEluZGV4LCBib29sPgogICAgIHN0cnVjdCBhdF9kaXNwYXRj
aApAQCAtMjI4Niw3ICsyMjg2LDcgQEAgbmFtZXNwYWNlIGRldGFpbAogICAgICAgICBzdGF0aWMg
YXV0byB0ZXN0KFAgKiBwKSAtPiBkZWNsdHlwZShDOjplcmFzZSh0eXBlXzxQPnt9KSwgc3RkOjp0
cnVlX3R5cGUoKSk7CiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSwgdHlwZW5hbWU+CiAgICAg
ICAgIHN0YXRpYyBzdGQ6OmZhbHNlX3R5cGUgdGVzdCguLi4pOwotICAgICAgICBzdGF0aWMgY29u
c3QgYm9vbCB2YWx1ZSA9IHN0ZDo6aXNfc2FtZTxzdGQ6OnRydWVfdHlwZSwgZGVjbHR5cGUodGVz
dDxULCBkdW1teT4obnVsbHB0cikpPjo6dmFsdWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCB2YWx1ZSA9IHN0ZDo6aXNfc2FtZTxzdGQ6OnRydWVfdHlwZSwgZGVjbHR5cGUodGVzdDxU
LCBkdW1teT4obnVsbHB0cikpPjo6dmFsdWU7CiAgICAgfTsKICAgICB0ZW1wbGF0ZTxjbGFzcyBM
LCBjbGFzcyBJLCBib29sPgogICAgIHN0cnVjdCBlcmFzZV9kaXNwYXRjaApJbmRleDogU291cmNl
L1dURi93dGYvQ2hlY2tlZEFyaXRobWV0aWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9DaGVja2VkQXJpdGhtZXRpYy5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV1RGL3d0
Zi9DaGVja2VkQXJpdGhtZXRpYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIsMjIgKzI0MiwyMiBA
QCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGFyZ2V0LCB0eXBlbmFtZSBTb3VyCiAKIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPiBzdHJ1Y3QgUmVtb3ZlQ2hlY2tlZCB7CiAgICAgdHlwZWRlZiBUIENsZWFuVHlw
ZTsKLSAgICBzdGF0aWMgY29uc3QgQ2xlYW5UeXBlIERlZmF1bHRWYWx1ZSA9IDA7ICAgIAorICAg
IHN0YXRpYyBjb25zdGV4cHIgQ2xlYW5UeXBlIERlZmF1bHRWYWx1ZSA9IDA7CiB9OwogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IFJlbW92ZUNoZWNrZWQ8Q2hlY2tlZDxULCBDb25kaXRp
b25hbENyYXNoT25PdmVyZmxvdz4+IHsKICAgICB1c2luZyBDbGVhblR5cGUgPSB0eXBlbmFtZSBS
ZW1vdmVDaGVja2VkPFQ+OjpDbGVhblR5cGU7Ci0gICAgc3RhdGljIGNvbnN0IENsZWFuVHlwZSBE
ZWZhdWx0VmFsdWUgPSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgQ2xlYW5UeXBlIERlZmF1bHRW
YWx1ZSA9IDA7CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IFJlbW92ZUNoZWNr
ZWQ8Q2hlY2tlZDxULCBDcmFzaE9uT3ZlcmZsb3c+PiB7CiAgICAgdHlwZWRlZiB0eXBlbmFtZSBS
ZW1vdmVDaGVja2VkPFQ+OjpDbGVhblR5cGUgQ2xlYW5UeXBlOwotICAgIHN0YXRpYyBjb25zdCBD
bGVhblR5cGUgRGVmYXVsdFZhbHVlID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIENsZWFuVHlw
ZSBEZWZhdWx0VmFsdWUgPSAwOwogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBS
ZW1vdmVDaGVja2VkPENoZWNrZWQ8VCwgUmVjb3JkT3ZlcmZsb3c+PiB7CiAgICAgdHlwZWRlZiB0
eXBlbmFtZSBSZW1vdmVDaGVja2VkPFQ+OjpDbGVhblR5cGUgQ2xlYW5UeXBlOwotICAgIHN0YXRp
YyBjb25zdCBDbGVhblR5cGUgRGVmYXVsdFZhbHVlID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHBy
IENsZWFuVHlwZSBEZWZhdWx0VmFsdWUgPSAwOwogfTsKIAogLy8gVGhlIFJlc3VsdEJhc2UgYW5k
IFNpZ25lZG5lc3NTZWxlY3RvciBhcmUgdXNlZCB0byB3b3JrYXJvdW5kIHR5cGVvZiBub3QgYmVp
bmcKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaAkocmV2aXNpb24gMjQ5OTU5KQor
KysgU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTU0LDExICs1NCwxMSBAQCBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlSGVs
cGVyIHsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElzRW51bU9y
Q29udmVydGlibGVUb0ludGVnZXIgewotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9
IHN0ZDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlIHx8IHN0ZDo6aXNfZW51bTxUPjo6dmFsdWUgfHwg
c3RkOjppc19jb252ZXJ0aWJsZTxULCBsb25nIGRvdWJsZT46OnZhbHVlOworICAgICAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgdmFsdWUgPSBzdGQ6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSB8fCBz
dGQ6OmlzX2VudW08VD46OnZhbHVlIHx8IHN0ZDo6aXNfY29udmVydGlibGU8VCwgbG9uZyBkb3Vi
bGU+Ojp2YWx1ZTsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElz
VGhyZWFkU2FmZVJlZkNvdW50ZWRQb2ludGVyIHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
dmFsdWUgPSBzdGQ6OmlzX2NvbnZlcnRpYmxlPHR5cGVuYW1lIFJlbW92ZVBvaW50ZXI8VD46OlR5
cGUqLCBUaHJlYWRTYWZlUmVmQ291bnRlZDx0eXBlbmFtZSBSZW1vdmVQb2ludGVyPFQ+OjpUeXBl
Pio+Ojp2YWx1ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZhbHVlID0gc3RkOjpp
c19jb252ZXJ0aWJsZTx0eXBlbmFtZSBSZW1vdmVQb2ludGVyPFQ+OjpUeXBlKiwgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8dHlwZW5hbWUgUmVtb3ZlUG9pbnRlcjxUPjo6VHlwZT4qPjo6dmFsdWU7CiAg
ICAgfTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5jcHAJKHJldmlzaW9uIDI0OTk1OSkK
KysrIFNvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmls
ZSwgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDA4IENhbWVyb24gWndhcmljaCA8Y3d6d2FyaWNo
QHV3YXRlcmxvby5jYT4KQEAgLTY4LDggKzY4LDggQEAgbmFtZXNwYWNlIFdURiB7CiAjaWYgT1Mo
V0lORE9XUykKIAogLy8gTnVtYmVyIG9mIDEwMCBuYW5vc2Vjb25kIGJldHdlZW4gSmFudWFyeSAx
LCAxNjAxIGFuZCBKYW51YXJ5IDEsIDE5NzAuCi1zdGF0aWMgY29uc3QgVUxPTkdMT05HIGVwb2No
QmlhcyA9IDExNjQ0NDczNjAwMDAwMDAwMFVMTDsKLXN0YXRpYyBjb25zdCBkb3VibGUgaHVuZHJl
ZHNPZk5hbm9zZWNvbmRzUGVyTWlsbGlzZWNvbmQgPSAxMDAwMDsKK3N0YXRpYyBjb25zdGV4cHIg
VUxPTkdMT05HIGVwb2NoQmlhcyA9IDExNjQ0NDczNjAwMDAwMDAwMFVMTDsKK3N0YXRpYyBjb25z
dGV4cHIgZG91YmxlIGh1bmRyZWRzT2ZOYW5vc2Vjb25kc1Blck1pbGxpc2Vjb25kID0gMTAwMDA7
CiAKIHN0YXRpYyBkb3VibGUgbG93UmVzVVRDVGltZSgpCiB7CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9EYXRhTG9nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9EYXRhTG9nLmNwcAko
cmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYvRGF0YUxvZy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNTIsNyArNTIsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIGNvbnN0IHNp
emVfdCBtYXhQYXRoTGVuZ3RoID0gMTAyNDsKK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1heFBh
dGhMZW5ndGggPSAxMDI0OwogCiBzdGF0aWMgUHJpbnRTdHJlYW0qIHNfZmlsZTsKIHN0YXRpYyB1
aW50NjRfdCBzX2ZpbGVEYXRhWyhzaXplb2YoRmlsZVByaW50U3RyZWFtKSArIDcpIC8gOF07Cklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri93dGYvRGF0ZU1hdGguY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV1RGL3d0Zi9E
YXRlTWF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqIENvcHly
aWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgJnlldCwgTExDLiAobmF0ZUBhbmR5ZXQubmV0KQpAQCAtMTA5LDExICsxMDksMTEg
QEAgdGVtcGxhdGU8dW5zaWduZWQgbGVuZ3RoPiBpbmxpbmUgYm9vbCBzdAogCiAvKiBDb25zdGFu
dHMgKi8KIAotc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhVbml4VGltZSA9IDIxNDU4NTkyMDAuMDsg
Ly8gMTIvMzEvMjAzNworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbWF4VW5peFRpbWUgPSAyMTQ1
ODU5MjAwLjA7IC8vIDEyLzMxLzIwMzcKIC8vIEVDTUFTY3JpcHQgYXNrcyBub3QgdG8gc3VwcG9y
dCBmb3IgYSBkYXRlIG9mIHdoaWNoIHRvdGFsCiAvLyBtaWxsaXNlY29uZCB2YWx1ZSBpcyBsYXJn
ZXIgdGhhbiB0aGUgZm9sbG93aW5nIHZhbHVlLgogLy8gU2VlIDE1LjkuMS4xNCBvZiBFQ01BLTI2
MiA1dGggZWRpdGlvbi4KLXN0YXRpYyBjb25zdCBkb3VibGUgbWF4RUNNQVNjcmlwdFRpbWUgPSA4
LjY0RTE1Oworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbWF4RUNNQVNjcmlwdFRpbWUgPSA4LjY0
RTE1OwogCiAvLyBEYXkgb2YgeWVhciBmb3IgdGhlIGZpcnN0IGRheSBvZiBlYWNoIG1vbnRoLCB3
aGVyZSBpbmRleCAwIGlzIEphbnVhcnksIGFuZCBkYXkgMCBpcyBKYW51YXJ5IDEuCiAvLyBGaXJz
dCBmb3Igbm9uLWxlYXAgeWVhcnMsIHRoZW4gZm9yIGxlYXAgeWVhcnMuCkBAIC0xNTYsOSArMTU2
LDkgQEAgc3RhdGljIGlubGluZSBkb3VibGUgZGF5c0Zyb20xOTcwVG9ZZWFyKAogICAgIC8vIEhv
d2V2ZXIsIGV2ZXJ5IGh1bmRyZWR0aCB5ZWFyIGlzIG5vdCBhIGxlYXAgeWVhci4gIDE5MDAgYW5k
IDIxMDAgYXJlIG5vdCBsZWFwIHllYXJzLgogICAgIC8vIEV2ZXJ5IGZvdXIgaHVuZHJlZCB5ZWFy
cywgdGhlcmUncyBhIGxlYXAgeWVhciBhZnRlciBhbGwuICAyMDAwIGFuZCAyNDAwIGFyZSBsZWFw
IHllYXJzLgogCi0gICAgc3RhdGljIGNvbnN0IGludCBsZWFwRGF5c0JlZm9yZTE5NzFCeTRSdWxl
ID0gMTk3MCAvIDQ7Ci0gICAgc3RhdGljIGNvbnN0IGludCBleGNsdWRlZExlYXBEYXlzQmVmb3Jl
MTk3MUJ5MTAwUnVsZSA9IDE5NzAgLyAxMDA7Ci0gICAgc3RhdGljIGNvbnN0IGludCBsZWFwRGF5
c0JlZm9yZTE5NzFCeTQwMFJ1bGUgPSAxOTcwIC8gNDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIg
aW50IGxlYXBEYXlzQmVmb3JlMTk3MUJ5NFJ1bGUgPSAxOTcwIC8gNDsKKyAgICBzdGF0aWMgY29u
c3RleHByIGludCBleGNsdWRlZExlYXBEYXlzQmVmb3JlMTk3MUJ5MTAwUnVsZSA9IDE5NzAgLyAx
MDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgbGVhcERheXNCZWZvcmUxOTcxQnk0MDBSdWxl
ID0gMTk3MCAvIDQwMDsKIAogICAgIGNvbnN0IGRvdWJsZSB5ZWFyTWludXNPbmUgPSB5ZWFyIC0g
MTsKICAgICBjb25zdCBkb3VibGUgeWVhcnNUb0FkZEJ5NFJ1bGUgPSBmbG9vcih5ZWFyTWludXNP
bmUgLyA0LjApIC0gbGVhcERheXNCZWZvcmUxOTcxQnk0UnVsZTsKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL0RlZmVycmFibGVSZWZDb3VudGVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
RGVmZXJyYWJsZVJlZkNvdW50ZWQuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93
dGYvRGVmZXJyYWJsZVJlZkNvdW50ZWQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw4ICszOCw4IEBAIG5h
bWVzcGFjZSBXVEYgewogLy8gc29tZXRpbWVzIGV2ZW4gZm9yIHNvbWUgYWRkaXRpb25hbCBmdW5j
dGlvbmFsaXR5LgogCiBjbGFzcyBEZWZlcnJhYmxlUmVmQ291bnRlZEJhc2UgewotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBkZWZlcnJlZEZsYWcgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBub3JtYWxJbmNyZW1lbnQgPSAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
ZGVmZXJyZWRGbGFnID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vcm1hbElu
Y3JlbWVudCA9IDI7CiAKIHB1YmxpYzoKICAgICB2b2lkIHJlZigpIGNvbnN0CkluZGV4OiBTb3Vy
Y2UvV1RGL3d0Zi9HZXRQdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9HZXRQdHIu
aAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYvR2V0UHRyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBJ
bmMuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTkgQXBwbGUgSW5jLgogICoKICAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTMwLDcgKzMwLDcgQEAgZW51bSBIYXNoVGFibGVFbXB0eVZhbHVlVHlwZSB7
IEhhc2hUYWJsZQogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBUKiBnZXRQdHIoVCogcCkg
eyByZXR1cm4gcDsgfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IElzU21hcnRQdHIg
ewotICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIHZhbHVlID0gZmFsc2U7CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgYm9v
bCBpc1NtYXJ0UHRyPgpAQCAtNjcsNyArNjcsNyBAQCBpbmxpbmUgdHlwZW5hbWUgR2V0UHRySGVs
cGVyPFQ+OjpQdHJUeXBlCiAvLyBFeHBsaWNpdCBzcGVjaWFsaXphdGlvbiBmb3IgQysrIHN0YW5k
YXJkIGxpYnJhcnkgdHlwZXMuCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBEZWxl
dGVyPiBzdHJ1Y3QgSXNTbWFydFB0cjxzdGQ6OnVuaXF1ZV9wdHI8VCwgRGVsZXRlcj4+IHsKLSAg
ICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIHZhbHVlID0gdHJ1ZTsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBE
ZWxldGVyPgpJbmRleDogU291cmNlL1dURi93dGYvSGFzaEZ1bmN0aW9ucy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvd3RmL0hhc2hGdW5jdGlvbnMuaAkocmV2aXNpb24gMjQ5OTU5KQorKysg
U291cmNlL1dURi93dGYvSGFzaEZ1bmN0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEwMiw3ICsxMDIs
NyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSW50
SGFzaCB7CiAgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKFQga2V5KSB7IHJldHVybiBpbnRI
YXNoKHN0YXRpY19jYXN0PHR5cGVuYW1lIEludFR5cGVzPHNpemVvZihUKT46OlVuc2lnbmVkVHlw
ZT4oa2V5KSk7IH0KICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoVCBhLCBUIGIpIHsgcmV0dXJu
IGEgPT0gYjsgfQotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0
eU9yRGVsZXRlZCA9IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9D
b21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0cnVjdCBGbG9hdEhhc2ggewpAQCAtMTE1LDcgKzExNSw3IEBAIG5hbWVzcGFj
ZSBXVEYgewogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEJpdHM+
KGEpID09IGJpdHdpc2VfY2FzdDxCaXRzPihiKTsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMg
Y29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRy
dWU7CiAgICAgfTsKIAogICAgIC8vIHBvaW50ZXIgaWRlbnRpdHkgaGFzaCBmdW5jdGlvbgpAQCAt
MTI5LDcgKzEyOSw3IEBAIG5hbWVzcGFjZSBXVEYgewogCiAgICAgICAgIHN0YXRpYyB1bnNpZ25l
ZCBoYXNoKFB0clR5cGUga2V5KSB7IHJldHVybiBJbnRIYXNoPHVpbnRwdHJfdD46Omhhc2gocmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGtleSkpOyB9CiAgICAgICAgIHN0YXRpYyBib29sIGVx
dWFsKFB0clR5cGUgYSwgUHRyVHlwZSBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAg
ICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQg
PSB0cnVlOwogICAgIH07CiAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KQEAgLTEzOCw3ICsx
MzgsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChQ
dHJUeXBlIGtleSkgeyByZXR1cm4gSW50SGFzaDx1aW50cHRyX3Q+OjpoYXNoKHJlaW50ZXJwcmV0
X2Nhc3Q8dWludHB0cl90PihrZXkpKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChQdHJU
eXBlIGEsIFB0clR5cGUgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgICAgIHN0YXRpYyBjb25z
dCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICAgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsK
IAogICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBUJiBrZXkpIHsgcmV0dXJuIGhh
c2goZ2V0UHRyKGtleSkpOyB9CiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFQmIGEs
IGNvbnN0IFQmIGIpIHsgcmV0dXJuIGdldFB0cihhKSA9PSBnZXRQdHIoYik7IH0KQEAgLTE1MCw3
ICsxNTAsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgUD4gc3RydWN0IFB0ckhhc2g8UmVmPFA+PiA6IFB0ckhhc2hCYXNlPFJlZjxQPiwgSXNTbWFy
dFB0cjxSZWY8UD4+Ojp2YWx1ZT4gewotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9D
b21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCiAg
ICAgLy8gZGVmYXVsdCBoYXNoIGZ1bmN0aW9uIGZvciBlYWNoIHR5cGUKQEAgLTE2NiwxMyArMTY2
LDEzIEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gRGVm
YXVsdEhhc2g8VD46Okhhc2g6OmVxdWFsKGEuZmlyc3QsIGIuZmlyc3QpICYmIERlZmF1bHRIYXNo
PFU+OjpIYXNoOjplcXVhbChhLnNlY29uZCwgYi5zZWNvbmQpOwogICAgICAgICB9Ci0gICAgICAg
IHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gRGVmYXVs
dEhhc2g8VD46Okhhc2g6OnNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkICYmIERlZmF1bHRI
YXNoPFU+OjpIYXNoOjpzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZDsKKyAgICAgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gRGVmYXVs
dEhhc2g8VD46Okhhc2g6OnNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkICYmIERlZmF1bHRI
YXNoPFU+OjpIYXNoOjpzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZDsKICAgICB9OwogCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEludFBhaXJIYXNoIHsK
ICAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3Qgc3RkOjpwYWlyPFQsIFU+JiBwKSB7
IHJldHVybiBwYWlySW50SGFzaChwLmZpcnN0LCBwLnNlY29uZCk7IH0KICAgICAgICAgc3RhdGlj
IGJvb2wgZXF1YWwoY29uc3Qgc3RkOjpwYWlyPFQsIFU+JiBhLCBjb25zdCBzdGQ6OnBhaXI8VCwg
VT4mIGIpIHsgcmV0dXJuIFBhaXJIYXNoPFQsIFQ+OjplcXVhbChhLCBiKTsgfQotICAgICAgICBz
dGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IFBhaXJIYXNo
PFQsIFU+OjpzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZDsKKyAgICAgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gUGFpckhhc2g8VCwg
VT46OnNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkOwogICAgIH07CiAKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBUeXBlcz4KQEAgLTIxMSw3ICsyMTEsNyBAQCBuYW1lc3BhY2UgV1RGIHsK
ICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGFsbFRydWUoQm9vbFR5cGUgdmFsdWUpIHsg
cmV0dXJuIHZhbHVlOyB9CiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJvb2xUeXBlLCB0eXBl
bmFtZS4uLiBCb29sVHlwZXM+CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBhbGxUcnVl
KEJvb2xUeXBlIHZhbHVlLCBCb29sVHlwZXMuLi4gdmFsdWVzKSB7IHJldHVybiB2YWx1ZSAmJiBh
bGxUcnVlKHZhbHVlcy4uLik7IH0KLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29t
cGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBhbGxUcnVlKERlZmF1bHRIYXNoPFR5cGVzPjo6SGFzaDo6
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQuLi4pOworICAgICAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBhbGxUcnVlKERlZmF1bHRI
YXNoPFR5cGVzPjo6SGFzaDo6c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQuLi4pOwogICAg
IH07CiAKICAgICAvLyBtYWtlIEludEhhc2ggdGhlIGRlZmF1bHQgaGFzaCBmdW5jdGlvbiBmb3Ig
bWFueSBpbnRlZ2VyIHR5cGVzCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dURi93dGYvSGFzaE1hcC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDgsIDIwMTEsIDIwMTMsIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zOSw3ICsz
OSw3IEBAIHByaXZhdGU6CiAgICAgdXNpbmcgTWFwcGVkVHJhaXRzID0gTWFwcGVkVHJhaXRzQXJn
OwogCiAgICAgc3RydWN0IEtleVZhbHVlUGFpclRyYWl0cyA6IEtleVZhbHVlUGFpckhhc2hUcmFp
dHM8S2V5VHJhaXRzLCBNYXBwZWRUcmFpdHM+IHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
aGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gPSB0cnVlOworICAgICAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gPSB0cnVlOwogICAgICAgICBzdGF0aWMgYm9v
bCBpc0VtcHR5VmFsdWUoY29uc3QgdHlwZW5hbWUgS2V5VmFsdWVQYWlySGFzaFRyYWl0czxLZXlU
cmFpdHMsIE1hcHBlZFRyYWl0cz46OlRyYWl0VHlwZSYgdmFsdWUpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIHJldHVybiBpc0hhc2hUcmFpdHNFbXB0eVZhbHVlPEtleVRyYWl0cz4odmFsdWUua2V5
KTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL0hhc2hUYWJsZS5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV1RGL3d0
Zi9IYXNoVGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTEsIDIwMTIsIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IERhdmlk
IExldmluIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTE4LDggKzUxOCw4
IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlSXRlcmF0
b3JzKCkgeyB9CiAjZW5kaWYKIAotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbV9tYXhM
b2FkID0gMjsKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1fbWluTG9hZCA9IDY7Cisg
ICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbV9tYXhMb2FkID0gMjsKKyAgICAgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtX21pbkxvYWQgPSA2OwogCiAgICAgICAgIFZhbHVl
VHlwZSogbV90YWJsZTsKICAgICAgICAgdW5zaWduZWQgbV90YWJsZVNpemU7CkBAIC01NDUsMTYg
KzU0NSwxNiBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBzaXplPiBz
dHJ1Y3QgT25laWZ5TG93Qml0czsKICAgICB0ZW1wbGF0ZTw+CiAgICAgc3RydWN0IE9uZWlmeUxv
d0JpdHM8MD4gewotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSAwOworICAg
ICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZhbHVlID0gMDsKICAgICB9OwogICAgIHRl
bXBsYXRlPHVuc2lnbmVkIG51bWJlcj4KICAgICBzdHJ1Y3QgT25laWZ5TG93Qml0cyB7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IG51bWJlciB8IE9uZWlmeUxvd0JpdHM8
KG51bWJlciA+PiAxKT46OnZhbHVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IHZhbHVlID0gbnVtYmVyIHwgT25laWZ5TG93Qml0czwobnVtYmVyID4+IDEpPjo6dmFsdWU7CiAg
ICAgfTsKICAgICAvLyBDb21wdXRlIHRoZSBmaXJzdCBwb3dlciBvZiB0d28gaW50ZWdlciB0aGF0
IGlzIGFuIHVwcGVyIGJvdW5kIG9mIHRoZSBwYXJhbWV0ZXIgJ251bWJlcicuCiAgICAgdGVtcGxh
dGU8dW5zaWduZWQgbnVtYmVyPgogICAgIHN0cnVjdCBVcHBlclBvd2VyT2ZUd29Cb3VuZCB7Ci0g
ICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IChPbmVpZnlMb3dCaXRzPG51bWJl
ciAtIDE+Ojp2YWx1ZSArIDEpICogMjsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCB2YWx1ZSA9IChPbmVpZnlMb3dCaXRzPG51bWJlciAtIDE+Ojp2YWx1ZSArIDEpICogMjsKICAg
ICB9OwogCiAgICAgLy8gQmVjYXVzZSBwb3dlciBvZiB0d28gbnVtYmVycyBhcmUgdGhlIGxpbWl0
IG9mIG1heExvYWQsIHRoZWlyIGNhcGFjaXR5IGlzIHR3aWNlIHRoZQpAQCAtNTYyLDE4ICs1NjIs
MTggQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dW5zaWduZWQgc2l6ZSwgYm9vbCBp
c1Bvd2VyT2ZUd28+IHN0cnVjdCBIYXNoVGFibGVDYXBhY2l0eUZvclNpemVTcGxpdHRlcjsKICAg
ICB0ZW1wbGF0ZTx1bnNpZ25lZCBzaXplPgogICAgIHN0cnVjdCBIYXNoVGFibGVDYXBhY2l0eUZv
clNpemVTcGxpdHRlcjxzaXplLCB0cnVlPiB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCB2YWx1ZSA9IHNpemUgKiA0OworICAgICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZh
bHVlID0gc2l6ZSAqIDQ7CiAgICAgfTsKICAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBzaXplPgogICAg
IHN0cnVjdCBIYXNoVGFibGVDYXBhY2l0eUZvclNpemVTcGxpdHRlcjxzaXplLCBmYWxzZT4gewot
ICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSBVcHBlclBvd2VyT2ZUd29Cb3Vu
ZDxzaXplPjo6dmFsdWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgdmFsdWUg
PSBVcHBlclBvd2VyT2ZUd29Cb3VuZDxzaXplPjo6dmFsdWU7CiAgICAgfTsKIAogICAgIC8vIEhh
c2hUYWJsZUNhcGFjaXR5Rm9yU2l6ZSBjb21wdXRlcyB0aGUgdXBwZXIgcG93ZXIgb2YgdHdvIGNh
cGFjaXR5IHRvIGhvbGQgdGhlIHNpemUgcGFyYW1ldGVyLgogICAgIC8vIFRoaXMgaXMgZG9uZSBh
dCBjb21waWxlIHRpbWUgdG8gaW5pdGlhbGl6ZSB0aGUgSGFzaFRyYWl0cy4KICAgICB0ZW1wbGF0
ZTx1bnNpZ25lZCBzaXplPgogICAgIHN0cnVjdCBIYXNoVGFibGVDYXBhY2l0eUZvclNpemUgewot
ICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSBIYXNoVGFibGVDYXBhY2l0eUZv
clNpemVTcGxpdHRlcjxzaXplLCAhKHNpemUgJiAoc2l6ZSAtIDEpKT46OnZhbHVlOworICAgICAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZhbHVlID0gSGFzaFRhYmxlQ2FwYWNpdHlGb3JT
aXplU3BsaXR0ZXI8c2l6ZSwgIShzaXplICYgKHNpemUgLSAxKSk+Ojp2YWx1ZTsKICAgICAgICAg
Q09NUElMRV9BU1NFUlQoc2l6ZSA+IDAsIEhhc2hUYWJsZU5vblplcm9NaW5pbXVtQ2FwYWNpdHkp
OwogICAgICAgICBDT01QSUxFX0FTU0VSVCghc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlID4+
IDMxKSwgSGFzaFRhYmxlTm9DYXBhY2l0eU92ZXJmbG93KTsKICAgICAgICAgQ09NUElMRV9BU1NF
UlQodmFsdWUgPiAoMiAqIHNpemUpLCBIYXNoVGFibGVDYXBhY2l0eUhvbGRzQ29udGVudFNpemUp
OwpJbmRleDogU291cmNlL1dURi93dGYvSGFzaFRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL0hhc2hUcmFpdHMuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93
dGYvSGFzaFRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzgsMjQgKzM4LDI0IEBAIHRlbXBsYXRlPGJvb2wgaXNJ
bnRlZ2VyLCB0eXBlbmFtZSBUPiBzdHIKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEdl
bmVyaWNIYXNoVHJhaXRzQmFzZTxmYWxzZSwgVD4gewogICAgIC8vIFRoZSBlbXB0eVZhbHVlSXNa
ZXJvIGZsYWcgaXMgdXNlZCB0byBvcHRpbWl6ZSBhbGxvY2F0aW9uIG9mIGVtcHR5IGhhc2ggdGFi
bGVzIHdpdGggemVyb2VkIG1lbW9yeS4KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVl
SXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1pl
cm8gPSBmYWxzZTsKIAogICAgIC8vIFRoZSBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiBmbGFnIGFs
bG93cyB0aGUgaGFzaCB0YWJsZSB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGNvZGUgdG8gY2hl
Y2sKICAgICAvLyBmb3IgdGhlIGVtcHR5IHZhbHVlIHdoZW4gaXQgY2FuIGJlIGRvbmUgd2l0aCB0
aGUgZXF1YWxpdHkgb3BlcmF0b3IsIGJ1dCBhbGxvd3MgY3VzdG9tIGZ1bmN0aW9ucwogICAgIC8v
IGZvciBjYXNlcyBsaWtlIFN0cmluZyB0aGF0IG5lZWQgdGhlbS4KLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiA9IGZhbHNlOwogCiAgICAgLy8gVXNlZCBi
eSBXZWFrUHRyIHRvIGluZGljYXRlIHRoYXQgdGhlIHZhbHVlIG1heSBiZWNvbWUgZGVsZXRlZCB3
aXRob3V0IGJlaW5nIGV4cGxpY2l0bHkgcmVtb3ZlZC4KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBo
YXNJc1JlbGVhc2VkV2Vha1ZhbHVlRnVuY3Rpb24gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgaGFzSXNSZWxlYXNlZFdlYWtWYWx1ZUZ1bmN0aW9uID0gZmFsc2U7CiAKICAgICAv
LyBUaGUgc3RhcnRpbmcgdGFibGUgc2l6ZS4gQ2FuIGJlIG92ZXJyaWRkZW4gd2hlbiB3ZSBrbm93
IGJlZm9yZWhhbmQgdGhhdAogICAgIC8vIGEgaGFzaCB0YWJsZSB3aWxsIGhhdmUgYXQgbGVhc3Qg
TiBlbnRyaWVzLgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtaW5pbXVtVGFibGVTaXplID0g
ODsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1pbmltdW1UYWJsZVNpemUgPSA4Owog
fTsKIAogLy8gRGVmYXVsdCBpbnRlZ2VyIHRyYWl0cyBkaXNhbGxvdyBib3RoIDAgYW5kIC0xIGFz
IGtleXMgKG1heCB2YWx1ZSBpbnN0ZWFkIG9mIC0xIGZvciB1bnNpZ25lZCkuCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgR2VuZXJpY0hhc2hUcmFpdHNCYXNlPHRydWUsIFQ+IDogR2VuZXJp
Y0hhc2hUcmFpdHNCYXNlPGZhbHNlLCBUPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlW
YWx1ZUlzWmVybyA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJ
c1plcm8gPSB0cnVlOwogICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShUJiBz
bG90KSB7IHNsb3QgPSBzdGF0aWNfY2FzdDxUPigtMSk7IH0KICAgICBzdGF0aWMgYm9vbCBpc0Rl
bGV0ZWRWYWx1ZShUIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA9PSBzdGF0aWNfY2FzdDxUPigtMSk7
IH0KIH07CkBAIC05OSwxNCArOTksMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxk
b3VibGU+IDogRgogCiAvLyBEZWZhdWx0IHVuc2lnbmVkIHRyYWl0cyBkaXNhbGxvdyBib3RoIDAg
YW5kIG1heCBhcyBrZXlzIC0tIHVzZSB0aGVzZSB0cmFpdHMgdG8gYWxsb3cgemVybyBhbmQgZGlz
YWxsb3cgbWF4IC0gMS4KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBVbnNpZ25lZFdpdGha
ZXJvS2V5SGFzaFRyYWl0cyA6IEdlbmVyaWNIYXNoVHJhaXRzPFQ+IHsKLSAgICBzdGF0aWMgY29u
c3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKICAgICBzdGF0aWMgVCBlbXB0eVZhbHVlKCkg
eyByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KCk7IH0KICAgICBzdGF0aWMgdm9p
ZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoVCYgc2xvdCkgeyBzbG90ID0gc3RkOjpudW1lcmljX2xp
bWl0czxUPjo6bWF4KCkgLSAxOyB9CiAgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoVCB2
YWx1ZSkgeyByZXR1cm4gdmFsdWUgPT0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KCkgLSAx
OyB9CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgU2lnbmVkV2l0aFplcm9LZXlI
YXNoVHJhaXRzIDogR2VuZXJpY0hhc2hUcmFpdHM8VD4gewotICAgIHN0YXRpYyBjb25zdCBib29s
IGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1w
dHlWYWx1ZUlzWmVybyA9IGZhbHNlOwogICAgIHN0YXRpYyBUIGVtcHR5VmFsdWUoKSB7IHJldHVy
biBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptaW4oKTsgfQogICAgIHN0YXRpYyB2b2lkIGNvbnN0
cnVjdERlbGV0ZWRWYWx1ZShUJiBzbG90KSB7IHNsb3QgPSBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+
OjptYXgoKTsgfQogICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKFQgdmFsdWUpIHsgcmV0
dXJuIHZhbHVlID09IHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1heCgpOyB9CkBAIC0xMTUsMTQg
KzExNSwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgU2lnbmVkV2l0aFplCiAvLyBD
YW4gYmUgdXNlZCB3aXRoIHN0cm9uZyBlbnVtcywgYWxsb3dzIHplcm8gYXMga2V5LgogdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IFN0cm9uZ0VudW1IYXNoVHJhaXRzIDogR2VuZXJpY0hhc2hU
cmFpdHM8VD4gewogICAgIHVzaW5nIFVuZGVybHlpbmdUeXBlID0gdHlwZW5hbWUgc3RkOjp1bmRl
cmx5aW5nX3R5cGU8VD46OnR5cGU7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlz
WmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJv
ID0gZmFsc2U7CiAgICAgc3RhdGljIFQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0
PFQ+KHN0ZDo6bnVtZXJpY19saW1pdHM8VW5kZXJseWluZ1R5cGU+OjptYXgoKSk7IH0KICAgICBz
dGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoVCYgc2xvdCkgeyBzbG90ID0gc3RhdGlj
X2Nhc3Q8VD4oc3RkOjpudW1lcmljX2xpbWl0czxVbmRlcmx5aW5nVHlwZT46Om1heCgpIC0gMSk7
IH0KICAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShUIHZhbHVlKSB7IHJldHVybiB2YWx1
ZSA9PSBzdGF0aWNfY2FzdDxUPihzdGQ6Om51bWVyaWNfbGltaXRzPFVuZGVybHlpbmdUeXBlPjo6
bWF4KCkgLSAxKTsgfQogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0IEhhc2hUcmFp
dHM8UCo+IDogR2VuZXJpY0hhc2hUcmFpdHM8UCo+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBl
bXB0eVZhbHVlSXNaZXJvID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlW
YWx1ZUlzWmVybyA9IHRydWU7CiAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVl
KFAqJiBzbG90KSB7IHNsb3QgPSByZWludGVycHJldF9jYXN0PFAqPigtMSk7IH0KICAgICBzdGF0
aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShQKiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgPT0gcmVpbnRl
cnByZXRfY2FzdDxQKj4oLTEpOyB9CiB9OwpAQCAtMTMwLDcgKzEzMCw3IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFA+IHN0cnVjdCBIYXNoVHJhaXRzPFAKICNpZmRlZiBfX09CSkNfXwogCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPF9fdW5zYWZlX3VucmV0YWluZWQgaWQ+IDogR2VuZXJpY0hh
c2hUcmFpdHM8X191bnNhZmVfdW5yZXRhaW5lZCBpZD4gewotICAgIHN0YXRpYyBjb25zdCBib29s
IGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0
eVZhbHVlSXNaZXJvID0gdHJ1ZTsKICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFs
dWUoX191bnNhZmVfdW5yZXRhaW5lZCBpZCYgc2xvdCkgeyBzbG90ID0gKF9fYnJpZGdlIF9fdW5z
YWZlX3VucmV0YWluZWQgaWQpcmVpbnRlcnByZXRfY2FzdDxDRlR5cGVSZWY+KC0xKTsgfQogICAg
IHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKF9fdW5zYWZlX3VucmV0YWluZWQgaWQgdmFsdWUp
IHsgcmV0dXJuIChfX2JyaWRnZSBDRlR5cGVSZWYpdmFsdWUgPT0gcmVpbnRlcnByZXRfY2FzdDxD
RlR5cGVSZWY+KC0xKTsgfQogfTsKQEAgLTEzOCw3ICsxMzgsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBIYXNoVHJhaXRzPF9fdW5zYWZlX3VuCiAjZW5kaWYKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IFNpbXBsZUNsYXNzSGFzaFRyYWl0cyA6IEdlbmVyaWNIYXNoVHJhaXRzPFQ+IHsKLSAg
ICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1ZTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CiAgICAgc3RhdGljIHZvaWQg
Y29uc3RydWN0RGVsZXRlZFZhbHVlKFQmIHNsb3QpIHsgbmV3IChOb3ROdWxsLCBzdGQ6OmFkZHJl
c3NvZihzbG90KSkgVChIYXNoVGFibGVEZWxldGVkVmFsdWUpOyB9CiAgICAgc3RhdGljIGJvb2wg
aXNEZWxldGVkVmFsdWUoY29uc3QgVCYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlLmlzSGFzaFRhYmxl
RGVsZXRlZFZhbHVlKCk7IH0KIH07CkBAIC0xOTYsNyArMTk2LDcgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgUD4gc3RydWN0IEhhc2hUcmFpdHM8UgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3Ry
dWN0IFJlZkhhc2hUcmFpdHMgOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8UmVmPFA+PiB7Ci0gICAg
c3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOwogICAgIHN0YXRpYyBSZWY8UD4g
ZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIEhhc2hUYWJsZUVtcHR5VmFsdWU7IH0KIAogICAgIHRlbXBs
YXRlIDx0eXBlbmFtZT4KQEAgLTIwNSw3ICsyMDUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBQPiBz
dHJ1Y3QgUmVmSGFzaFRyYWl0CiAgICAgICAgIG5ldyAoTm90TnVsbCwgc3RkOjphZGRyZXNzb2Yo
c2xvdCkpIFJlZjxQPihIYXNoVGFibGVFbXB0eVZhbHVlKTsKICAgICB9CiAKLSAgICBzdGF0aWMg
Y29uc3QgYm9vbCBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGhhc0lzRW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKICAgICBzdGF0aWMg
Ym9vbCBpc0VtcHR5VmFsdWUoY29uc3QgUmVmPFA+JiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUuaXNI
YXNoVGFibGVFbXB0eVZhbHVlKCk7IH0KIAogICAgIHN0YXRpYyB2b2lkIGFzc2lnblRvRW1wdHko
UmVmPFA+JiBlbXB0eVZhbHVlLCBSZWY8UD4mJiBuZXdWYWx1ZSkgeyBBU1NFUlQoaXNFbXB0eVZh
bHVlKGVtcHR5VmFsdWUpKTsgZW1wdHlWYWx1ZS5hc3NpZ25Ub0hhc2hUYWJsZUVtcHR5VmFsdWUo
V1RGTW92ZShuZXdWYWx1ZSkpOyB9CkBAIC0yMjEsNyArMjIxLDcgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgUD4gc3RydWN0IFJlZkhhc2hUcmFpdAogdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0IEhh
c2hUcmFpdHM8UmVmPFA+PiA6IFJlZkhhc2hUcmFpdHM8UD4geyB9OwogCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBIYXNoVHJhaXRzPFN0cmluZz4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8U3RyaW5nPiB7
Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gPSB0cnVlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiA9IHRydWU7
CiAgICAgc3RhdGljIGJvb2wgaXNFbXB0eVZhbHVlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgc3Rh
dGljIHZvaWQgY3VzdG9tRGVsZXRlQnVja2V0KFN0cmluZyYpOwpAQCAtMjU5LDcgKzI1OSw3IEBA
IHN0cnVjdCBIYXNoVHJhaXRIYXNDdXN0b21EZWxldGUgewogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFg+IHN0YXRpYyBzdGQ6OnRydWVfdHlwZSBUZXN0SGFzQ3VzdG9tRGVsZXRlKFgqLCBkZWNsdHlw
ZShYOjpjdXN0b21EZWxldGVCdWNrZXQoYnVja2V0QXJnKSkqID0gbnVsbHB0cik7CiAgICAgc3Rh
dGljIHN0ZDo6ZmFsc2VfdHlwZSBUZXN0SGFzQ3VzdG9tRGVsZXRlKC4uLik7CiAgICAgdHlwZWRl
ZiBkZWNsdHlwZShUZXN0SGFzQ3VzdG9tRGVsZXRlKHN0YXRpY19jYXN0PFRyYWl0cyo+KG51bGxw
dHIpKSkgUmVzdWx0VHlwZTsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IFJlc3VsdFR5
cGU6OnZhbHVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2YWx1ZSA9IFJlc3VsdFR5cGU6
OnZhbHVlOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBUPgpAQCAt
Mjg0LDEwICsyODQsMTAgQEAgc3RydWN0IFBhaXJIYXNoVHJhaXRzIDogR2VuZXJpY0hhc2hUcmFp
dAogICAgIHR5cGVkZWYgc3RkOjpwYWlyPHR5cGVuYW1lIEZpcnN0VHJhaXRzOjpUcmFpdFR5cGUs
IHR5cGVuYW1lIFNlY29uZFRyYWl0czo6VHJhaXRUeXBlPiBUcmFpdFR5cGU7CiAgICAgdHlwZWRl
ZiBzdGQ6OnBhaXI8dHlwZW5hbWUgRmlyc3RUcmFpdHM6OkVtcHR5VmFsdWVUeXBlLCB0eXBlbmFt
ZSBTZWNvbmRUcmFpdHM6OkVtcHR5VmFsdWVUeXBlPiBFbXB0eVZhbHVlVHlwZTsKIAotICAgIHN0
YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBGaXJzdFRyYWl0czo6ZW1wdHlWYWx1
ZUlzWmVybyAmJiBTZWNvbmRUcmFpdHM6OmVtcHR5VmFsdWVJc1plcm87CisgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBGaXJzdFRyYWl0czo6ZW1wdHlWYWx1ZUlz
WmVybyAmJiBTZWNvbmRUcmFpdHM6OmVtcHR5VmFsdWVJc1plcm87CiAgICAgc3RhdGljIEVtcHR5
VmFsdWVUeXBlIGVtcHR5VmFsdWUoKSB7IHJldHVybiBzdGQ6Om1ha2VfcGFpcihGaXJzdFRyYWl0
czo6ZW1wdHlWYWx1ZSgpLCBTZWNvbmRUcmFpdHM6OmVtcHR5VmFsdWUoKSk7IH0KIAotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBtaW5pbXVtVGFibGVTaXplID0gRmlyc3RUcmFpdHM6Om1pbmlt
dW1UYWJsZVNpemU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtaW5pbXVtVGFibGVT
aXplID0gRmlyc3RUcmFpdHM6Om1pbmltdW1UYWJsZVNpemU7CiAKICAgICBzdGF0aWMgdm9pZCBj
b25zdHJ1Y3REZWxldGVkVmFsdWUoVHJhaXRUeXBlJiBzbG90KSB7IEZpcnN0VHJhaXRzOjpjb25z
dHJ1Y3REZWxldGVkVmFsdWUoc2xvdC5maXJzdCk7IH0KICAgICBzdGF0aWMgYm9vbCBpc0RlbGV0
ZWRWYWx1ZShjb25zdCBUcmFpdFR5cGUmIHZhbHVlKSB7IHJldHVybiBGaXJzdFRyYWl0czo6aXNE
ZWxldGVkVmFsdWUodmFsdWUuZmlyc3QpOyB9CkBAIC0zMDcsMTAgKzMwNywxMCBAQCBzdHJ1Y3Qg
VHVwbGVIYXNoVHJhaXRzIDogR2VuZXJpY0hhc2hUcmFpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGFsbFRydWUoQm9vbFR5cGUgdmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQm9vbFR5cGUsIHR5cGVuYW1lLi4uIEJvb2xUeXBlcz4KICAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgYWxsVHJ1ZShCb29sVHlwZSB2YWx1ZSwgQm9vbFR5cGVzLi4uIHZhbHVl
cykgeyByZXR1cm4gdmFsdWUgJiYgYWxsVHJ1ZSh2YWx1ZXMuLi4pOyB9Ci0gICAgc3RhdGljIGNv
bnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGFsbFRydWUoRmlyc3RUcmFpdDo6ZW1wdHlWYWx1
ZUlzWmVybywgVHJhaXRzOjplbXB0eVZhbHVlSXNaZXJvLi4uKTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGFsbFRydWUoRmlyc3RUcmFpdDo6ZW1wdHlWYWx1
ZUlzWmVybywgVHJhaXRzOjplbXB0eVZhbHVlSXNaZXJvLi4uKTsKICAgICBzdGF0aWMgRW1wdHlW
YWx1ZVR5cGUgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHN0ZDo6bWFrZV90dXBsZShGaXJzdFRyYWl0
OjplbXB0eVZhbHVlKCksIFRyYWl0czo6ZW1wdHlWYWx1ZSgpLi4uKTsgfQogCi0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIG1pbmltdW1UYWJsZVNpemUgPSBGaXJzdFRyYWl0OjptaW5pbXVtVGFi
bGVTaXplOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWluaW11bVRhYmxlU2l6ZSA9
IEZpcnN0VHJhaXQ6Om1pbmltdW1UYWJsZVNpemU7CiAKICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1
Y3REZWxldGVkVmFsdWUoVHJhaXRUeXBlJiBzbG90KSB7IEZpcnN0VHJhaXQ6OmNvbnN0cnVjdERl
bGV0ZWRWYWx1ZShzdGQ6OmdldDwwPihzbG90KSk7IH0KICAgICBzdGF0aWMgYm9vbCBpc0RlbGV0
ZWRWYWx1ZShjb25zdCBUcmFpdFR5cGUmIHZhbHVlKSB7IHJldHVybiBGaXJzdFRyYWl0Ojppc0Rl
bGV0ZWRWYWx1ZShzdGQ6OmdldDwwPih2YWx1ZSkpOyB9CkBAIC0zMjcsNyArMzI3LDcgQEAgc3Ry
dWN0IEtleVZhbHVlUGFpckhhc2hUcmFpdHMgOiBHZW5lcmljSAogICAgIHR5cGVkZWYgS2V5VmFs
dWVQYWlyPHR5cGVuYW1lIEtleVRyYWl0czo6RW1wdHlWYWx1ZVR5cGUsIHR5cGVuYW1lIFZhbHVl
VHJhaXRzOjpFbXB0eVZhbHVlVHlwZT4gRW1wdHlWYWx1ZVR5cGU7CiAgICAgdHlwZWRlZiB0eXBl
bmFtZSBWYWx1ZVRyYWl0c0FyZzo6VHJhaXRUeXBlIFZhbHVlVHlwZTsKIAotICAgIHN0YXRpYyBj
b25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBLZXlUcmFpdHM6OmVtcHR5VmFsdWVJc1plcm8g
JiYgVmFsdWVUcmFpdHM6OmVtcHR5VmFsdWVJc1plcm87CisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGVtcHR5VmFsdWVJc1plcm8gPSBLZXlUcmFpdHM6OmVtcHR5VmFsdWVJc1plcm8gJiYgVmFs
dWVUcmFpdHM6OmVtcHR5VmFsdWVJc1plcm87CiAgICAgc3RhdGljIEVtcHR5VmFsdWVUeXBlIGVt
cHR5VmFsdWUoKSB7IHJldHVybiBLZXlWYWx1ZVBhaXI8dHlwZW5hbWUgS2V5VHJhaXRzOjpFbXB0
eVZhbHVlVHlwZSwgdHlwZW5hbWUgVmFsdWVUcmFpdHM6OkVtcHR5VmFsdWVUeXBlPihLZXlUcmFp
dHM6OmVtcHR5VmFsdWUoKSwgVmFsdWVUcmFpdHM6OmVtcHR5VmFsdWUoKSk7IH0KIAogICAgIHRl
bXBsYXRlIDx0eXBlbmFtZT4KQEAgLTMzNyw3ICszMzcsNyBAQCBzdHJ1Y3QgS2V5VmFsdWVQYWly
SGFzaFRyYWl0cyA6IEdlbmVyaWNICiAgICAgICAgIFZhbHVlVHJhaXRzOjp0ZW1wbGF0ZSBjb25z
dHJ1Y3RFbXB0eVZhbHVlPFZhbHVlVHJhaXRzPihzbG90LnZhbHVlKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgbWluaW11bVRhYmxlU2l6ZSA9IEtleVRyYWl0czo6bWluaW11
bVRhYmxlU2l6ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1pbmltdW1UYWJsZVNp
emUgPSBLZXlUcmFpdHM6Om1pbmltdW1UYWJsZVNpemU7CiAKICAgICBzdGF0aWMgdm9pZCBjb25z
dHJ1Y3REZWxldGVkVmFsdWUoVHJhaXRUeXBlJiBzbG90KSB7IEtleVRyYWl0czo6Y29uc3RydWN0
RGVsZXRlZFZhbHVlKHNsb3Qua2V5KTsgfQogICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVl
KGNvbnN0IFRyYWl0VHlwZSYgdmFsdWUpIHsgcmV0dXJuIEtleVRyYWl0czo6aXNEZWxldGVkVmFs
dWUodmFsdWUua2V5KTsgfQpAQCAtMzU3LDcgKzM1Nyw3IEBAIHN0cnVjdCBIYXNoVHJhaXRzPEtl
eVZhbHVlUGFpcjxLZXksIFZhbHUKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHN0cnVjdCBOdWxs
YWJsZUhhc2hUcmFpdHMgOiBwdWJsaWMgSGFzaFRyYWl0czxUPiB7Ci0gICAgc3RhdGljIGNvbnN0
IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiAgICAgc3RhdGljIFQgZW1wdHlWYWx1ZSgpIHsg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VD4oMSk7IH0KIH07CiAKQEAgLTM2NSw4ICszNjUsOCBA
QCBzdHJ1Y3QgTnVsbGFibGVIYXNoVHJhaXRzIDogcHVibGljIEhhc2hUCiAvLyBhbmQgaG93IHRv
IGNvbnN0cnVjdCBib3RoLgogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHN0cnVjdCBDdXN0b21IYXNo
VHJhaXRzIDogcHVibGljIEdlbmVyaWNIYXNoVHJhaXRzPFQ+IHsKLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgaGFz
SXNFbXB0eVZhbHVlRnVuY3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBl
bXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGhhc0lz
RW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKICAgICAKICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1
Y3REZWxldGVkVmFsdWUoVCYgc2xvdCkKICAgICB7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9KU09O
VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcAko
cmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTT05JbXBsIHsKIAogbmFtZXNw
YWNlIHsKIAotc3RhdGljIGNvbnN0IGludCBzdGFja0xpbWl0ID0gMTAwMDsKK3N0YXRpYyBjb25z
dGV4cHIgaW50IHN0YWNrTGltaXQgPSAxMDAwOwogCiBlbnVtIGNsYXNzIFRva2VuIHsKICAgICBP
YmplY3RCZWdpbiwKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNv
dXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAxNCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
NTIsNyArNTIsNyBAQCBjbGFzcyBPYmplY3RCYXNlOwogLy8gRklYTUU6IHVuaWZ5IHRoaXMgSlNP
TiBwYXJzZXIgd2l0aCBKU09OUGFyc2UgaW4gSmF2YVNjcmlwdENvcmUuCiBjbGFzcyBXVEZfRVhQ
T1JUX1BSSVZBVEUgVmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxWYWx1ZT4gewogcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4RGVwdGggPSAxMDAwOworICAgIHN0YXRpYyBjb25zdGV4
cHIgaW50IG1heERlcHRoID0gMTAwMDsKIAogICAgIHZpcnR1YWwgflZhbHVlKCkKICAgICB7Cklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9MaXN0SGFzaFNldC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL0xpc3RIYXNoU2V0LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XVEYvd3Rm
L0xpc3RIYXNoU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDExLCAyMDEyLCAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSwgQmVu
amFtaW4gUG91bGFpbiA8aWtpcG91QGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xODEsNyAr
MTgxLDcgQEAgcHVibGljOgogdGVtcGxhdGU8dHlwZW5hbWUgSGFzaEFyZz4gc3RydWN0IExpc3RI
YXNoU2V0Tm9kZUhhc2hGdW5jdGlvbnMgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRp
YyB1bnNpZ25lZCBoYXNoKGNvbnN0IFQmIGtleSkgeyByZXR1cm4gSGFzaEFyZzo6aGFzaChrZXkt
Pm1fdmFsdWUpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIGJvb2wgZXF1YWwo
Y29uc3QgVCYgYSwgY29uc3QgVCYgYikgeyByZXR1cm4gSGFzaEFyZzo6ZXF1YWwoYS0+bV92YWx1
ZSwgYi0+bV92YWx1ZSk7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9D
b21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUg
VmFsdWVBcmcsIHR5cGVuYW1lIEhhc2hBcmc+IGNsYXNzIExpc3RIYXNoU2V0SXRlcmF0b3IgewpJ
bmRleDogU291cmNlL1dURi93dGYvTG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L0xvY2suaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYvTG9jay5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMTE0LDggKzExNCw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJp
ZW5kIHN0cnVjdCBUZXN0V2ViS2l0QVBJOjpMb2NrSW5zcGVjdG9yOwogICAgIAotICAgIHN0YXRp
YyBjb25zdCB1aW50OF90IGlzSGVsZEJpdCA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQ4X3Qg
aGFzUGFya2VkQml0ID0gMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgaXNIZWxkQml0
ID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgaGFzUGFya2VkQml0ID0gMjsKICAg
ICAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBsb2NrU2xvdygpOwogICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkIHVubG9ja1Nsb3coKTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0xvY2tB
bGdvcml0aG0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9Mb2NrQWxnb3JpdGhtLmgJ
KHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XVEYvd3RmL0xvY2tBbGdvcml0aG0uaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTQ0LDggKzQ0LDggQEAgc3RydWN0IEVtcHR5TG9ja0hvb2tzIHsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGUsIExvY2tUeXBlIGlzSGVsZEJpdCwgTG9ja1R5cGUg
aGFzUGFya2VkQml0LCB0eXBlbmFtZSBIb29rcyA9IEVtcHR5TG9ja0hvb2tzPExvY2tUeXBlPj4K
IGNsYXNzIExvY2tBbGdvcml0aG0gewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBm
YWxzZTsKLSAgICBzdGF0aWMgY29uc3QgTG9ja1R5cGUgbWFzayA9IGlzSGVsZEJpdCB8IGhhc1Bh
cmtlZEJpdDsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAg
IHN0YXRpYyBjb25zdGV4cHIgTG9ja1R5cGUgbWFzayA9IGlzSGVsZEJpdCB8IGhhc1BhcmtlZEJp
dDsKIAogcHVibGljOgogICAgIHN0YXRpYyBib29sIGxvY2tGYXN0QXNzdW1pbmdaZXJvKEF0b21p
YzxMb2NrVHlwZT4mIGxvY2spCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Mb2NrQWxnb3JpdGhtSW5s
aW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0xvY2tBbGdvcml0aG1JbmxpbmVz
LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XVEYvd3RmL0xvY2tBbGdvcml0aG1Jbmxp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MCw3ICs0MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IExvY2tUeXBlLCBMb2NrVHlwZSBpc0gKIHZvaWQgTG9ja0FsZ29yaXRobTxMb2NrVHlwZSwgaXNI
ZWxkQml0LCBoYXNQYXJrZWRCaXQsIEhvb2tzPjo6bG9ja1Nsb3coQXRvbWljPExvY2tUeXBlPiYg
bG9jaykKIHsKICAgICAvLyBUaGlzIG1hZ2ljIG51bWJlciB0dXJucyBvdXQgdG8gYmUgb3B0aW1h
bCBiYXNlZCBvbiBwYXN0IEppa2VzUlZNIGV4cGVyaW1lbnRzLgotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBzcGluTGltaXQgPSA0MDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNw
aW5MaW1pdCA9IDQwOwogICAgIAogICAgIHVuc2lnbmVkIHNwaW5Db3VudCA9IDA7CiAgICAgCklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9Mb2dnZXIuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYvTG9nZ2VyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNjQsNyArNjQsNyBAQCBjbGFzcyBIYXNUb0pTT05TdHJpbmcgewogICAg
IHRlbXBsYXRlIDxjbGFzcyBUPiBzdGF0aWMgc3RkOjpmYWxzZV90eXBlIHRlc3QoLi4uKTsKIAog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gZGVjbHR5cGUodGVzdDxDPihu
dWxscHRyKSk6OnZhbHVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2YWx1ZSA9IGRlY2x0
eXBlKHRlc3Q8Qz4obnVsbHB0cikpOjp2YWx1ZTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEFy
Z3VtZW50LCBib29sIGhhc0pTT04gPSBIYXNUb0pTT05TdHJpbmc8QXJndW1lbnQ+Ojp2YWx1ZT4K
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL0xvZ2dlckhlbHBlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL0xvZ2dlckhlbHBlci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV1RG
L3d0Zi9Mb2dnZXJIZWxwZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsOCArNTgsOCBAQCBwdWJs
aWM6CiAKICAgICBjb25zdCB2b2lkKiBjaGlsZExvZ0lkZW50aWZpZXIodWludDY0X3QgaWRlbnRp
ZmllcikgY29uc3QKICAgICB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBwYXJlbnRN
YXNrID0gMHhmZmZmZmZmZmZmZmYwMDAwdWxsOwotICAgICAgICBzdGF0aWMgY29uc3QgdWludDY0
X3QgbWFza0xvd2VyV29yZCA9IDB4ZmZmZnVsbDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50NjRfdCBwYXJlbnRNYXNrID0gMHhmZmZmZmZmZmZmZmYwMDAwdWxsOworICAgICAgICBzdGF0
aWMgY29uc3RleHByIHVpbnQ2NF90IG1hc2tMb3dlcldvcmQgPSAweGZmZmZ1bGw7CiAgICAgICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigocmVpbnRlcnByZXRfY2FzdDx1
aW50NjRfdD4obG9nSWRlbnRpZmllcigpKSAmIHBhcmVudE1hc2spIHwgKGlkZW50aWZpZXIgJiBt
YXNrTG93ZXJXb3JkKSk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFk
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcAkocmV2aXNp
b24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgY2FuQWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhy
ZWFkKFQKICNlbmRpZgogCiAvLyAwLjEgc2VjIGRlbGF5cyBpbiBVSSBpcyBhcHByb3hpbWF0ZSB0
aHJlc2hvbGQgd2hlbiB0aGV5IGJlY29tZSBub3RpY2VhYmxlLiBIYXZlIGEgbGltaXQgdGhhdCdz
IGhhbGYgb2YgdGhhdC4KLXN0YXRpYyBjb25zdCBhdXRvIG1heFJ1bkxvb3BTdXNwZW5zaW9uVGlt
ZSA9IDUwX21zOworc3RhdGljIGNvbnN0ZXhwciBhdXRvIG1heFJ1bkxvb3BTdXNwZW5zaW9uVGlt
ZSA9IDUwX21zOwogCiB2b2lkIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKQogewpJ
bmRleDogU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvclB0ci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3JQdHIuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291
cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvclB0ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwNiw3ICsxMDYs
NyBAQCBzdHJ1Y3QgTWV0YUFsbG9jYXRvclB0ckhhc2ggewogICAgIHsKICAgICAgICAgcmV0dXJu
IGEgPT0gYjsKICAgICB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1w
dHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgRGVmYXVsdEhhc2g7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5oCShyZXZpc2lvbiAy
NDk5NTkpCisrKyBTb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NDAsNyArNDAsNyBAQCBjbGFzcyBQcmludFN0cmVhbTsKIGNsYXNzIE1vbm90b25pY1RpbWUgZmlu
YWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBj
b25zdCBDbG9ja1R5cGUgY2xvY2tUeXBlID0gQ2xvY2tUeXBlOjpNb25vdG9uaWM7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBDbG9ja1R5cGUgY2xvY2tUeXBlID0gQ2xvY2tUeXBlOjpNb25vdG9uaWM7
CiAgICAgCiAgICAgLy8gVGhpcyBpcyB0aGUgZXBvY2guIFNvLCB4LnNlY29uZHNTaW5jZUVwb2No
KCkgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHggLSBNb25vdG9uaWNUaW1lKCkuCiAgICAgY29uc3Rl
eHByIE1vbm90b25pY1RpbWUoKSB7IH0KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL05hdHVyYWxMb29w
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL05hdHVyYWxMb29wcy5oCShyZXZpc2lv
biAyNDk5NTkpCisrKyBTb3VyY2UvV1RGL3d0Zi9OYXR1cmFsTG9vcHMuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTEyNiw3ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIGJsb2NrcyB0byB0aGVp
ciBsb29wIGhlYWRlcnMsIHdoaWNoIGdpdmVzIHVzIGFsbCBvZiB0aGUgYmxvY2tzIGluIHRoZQog
ICAgICAgICAvLyBsb29wIGJvZHkuCiAgICAgCi0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBm
YWxzZTsKICAgICAKICAgICAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAgICAgICAgIGRhdGFMb2co
IkRvbWluYXRvcnM6XG4iKTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgJKHJldmlz
aW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTE0LDcgKzExNCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBP
YmplY3RJZGVudGkKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBPYmplY3RJZGVudGlmaWVy
SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgT2JqZWN0SWRlbnRpZmllcjxU
PiYgaWRlbnRpZmllcikgeyByZXR1cm4gaW50SGFzaChpZGVudGlmaWVyLm1faWRlbnRpZmllcik7
IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBPYmplY3RJZGVudGlmaWVyPFQ+JiBhLCBj
b25zdCBPYmplY3RJZGVudGlmaWVyPFQ+JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0
aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1
ZTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzPE9iamVjdElk
ZW50aWZpZXI8VD4+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPE9iamVjdElkZW50aWZpZXI8VD4+
IHsgfTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1JBTVNpemUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL1JBTVNpemUuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV1RG
L3d0Zi9SQU1TaXplLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Miw3ICs0Miw3IEBACiBuYW1lc3BhY2Ug
V1RGIHsKIAogI2lmIE9TKFdJTkRPV1MpCi1zdGF0aWMgY29uc3Qgc2l6ZV90IHJhbVNpemVHdWVz
cyA9IDUxMiAqIE1COworc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgcmFtU2l6ZUd1ZXNzID0gNTEy
ICogTUI7CiAjZW5kaWYKIAogc3RhdGljIHNpemVfdCBjb21wdXRlUkFNU2l6ZSgpCkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9SZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9SZWYuaAko
cmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYvUmVmLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yMzksNyArMjM5LDcgQEAgc3RydWN0IEdldFB0ckhlbHBlcjxSZWY8VCwgVT4+IHsKIAog
dGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+CiBzdHJ1Y3QgSXNTbWFydFB0cjxSZWY8
VCwgVT4+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIHZhbHVlID0gdHJ1ZTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFU+CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dU
Ri93dGYvUmVmUHRyLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzOSw3ICsyMzksNyBAQCBpbmxpbmUg
UmVmUHRyPFQsIFU+IHN0YXRpY19wb2ludGVyX2Nhc3QoCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBVPgogc3RydWN0IElzU21hcnRQdHI8UmVmUHRyPFQsIFU+PiB7Ci0gICAgc3Rh
dGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2
YWx1ZSA9IHRydWU7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgpJbmRl
eDogU291cmNlL1dURi93dGYvUmV0YWluUHRyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvUmV0YWluUHRyLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XVEYvd3RmL1JldGFp
blB0ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMDUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJp
Z2h0IChDKSAyMDA1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTMzNiw3ICszMzYsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBp
bmxpbmUgUmV0YWluUHRyPHR5CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgSXNT
bWFydFB0cjxSZXRhaW5QdHI8VD4+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRy
dWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZhbHVlID0gdHJ1ZTsKIH07CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFA+IHN0cnVjdCBIYXNoVHJhaXRzPFJldGFpblB0cjxQPj4gOiBTaW1wbGVD
bGFzc0hhc2hUcmFpdHM8UmV0YWluUHRyPFA+PiB7CkBAIC0zNjYsNyArMzY2LDcgQEAgc3RydWN0
IFJldGFpblB0ck9iamVjdEhhc2ggewogICAgIHsKICAgICAgICAgcmV0dXJuIENGRXF1YWwoYS5n
ZXQoKSwgYi5nZXQoKSk7CiAgICAgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBh
cmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNh
ZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CiB9OwogCiBpbmxpbmUgYm9vbCBz
YWZlQ0ZFcXVhbChDRlR5cGVSZWYgYSwgQ0ZUeXBlUmVmIGIpCkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9TY2hlZHVsZVBhaXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TY2hlZHVsZVBh
aXIuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYvU2NoZWR1bGVQYWlyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNzksNyArNzksNyBAQCBzdHJ1Y3QgU2NoZWR1bGVQYWlySGFz
aCB7CiAKICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBSZWZQdHI8U2NoZWR1bGVQYWlyPiYg
YSwgY29uc3QgUmVmUHRyPFNjaGVkdWxlUGFpcj4mIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQogCi0g
ICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRl
ZCA9IHRydWU7CiB9OwogCiB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPFNjaGVkdWxlUGFpcj4sIFNj
aGVkdWxlUGFpckhhc2g+IFNjaGVkdWxlUGFpckhhc2hTZXQ7CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9TdGFja1Nob3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TdGFja1Nob3QuaAko
cmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYvU3RhY2tTaG90LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0xMTcsNyArMTE3LDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBTdGFja1Nob3RIYXNoIHsK
ICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBTdGFja1Nob3QmIHNob3QpIHsgcmV0dXJu
IHNob3QuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgU3RhY2tTaG90JiBh
LCBjb25zdCBTdGFja1Nob3QmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25z
dCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CiB9
OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGVmYXVsdEhhc2g7CkluZGV4OiBTb3Vy
Y2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9T
dGRMaWJFeHRyYXMuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYvU3RkTGli
RXh0cmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA4LTIwMTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDEzIFBhdHJpY2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKQEAgLTExMyw5ICsxMTMsOSBAQCBuYW1lc3BhY2UgV1RGIHsKIAogZW51
bSBDaGVja01vdmVQYXJhbWV0ZXJUYWcgeyBDaGVja01vdmVQYXJhbWV0ZXIgfTsKIAotc3RhdGlj
IGNvbnN0IHNpemVfdCBLQiA9IDEwMjQ7Ci1zdGF0aWMgY29uc3Qgc2l6ZV90IE1CID0gMTAyNCAq
IDEwMjQ7Ci1zdGF0aWMgY29uc3Qgc2l6ZV90IEdCID0gMTAyNCAqIDEwMjQgKiAxMDI0Oworc3Rh
dGljIGNvbnN0ZXhwciBzaXplX3QgS0IgPSAxMDI0Oworc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qg
TUIgPSAxMDI0ICogMTAyNDsKK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IEdCID0gMTAyNCAqIDEw
MjQgKiAxMDI0OwogCiBpbmxpbmUgYm9vbCBpc1BvaW50ZXJBbGlnbmVkKHZvaWQqIHApCiB7Cklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9UaW55UHRyU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri93dGYvVGlueVB0clNldC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV1RGL3d0Zi9U
aW55UHRyU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNTksMTIgKzM1OSwxMiBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBKU0M6OkRGRzo6U3RydWN0dXJlQWJzdHJhY3RW
YWx1ZTsKIAotICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3QgZmF0RmxhZyA9IDE7Ci0gICAgc3Rh
dGljIGNvbnN0IHVpbnRwdHJfdCByZXNlcnZlZEZsYWcgPSAyOwotICAgIHN0YXRpYyBjb25zdCB1
aW50cHRyX3QgZmxhZ3MgPSBmYXRGbGFnIHwgcmVzZXJ2ZWRGbGFnOwotICAgIHN0YXRpYyBjb25z
dCB1aW50cHRyX3QgcmVzZXJ2ZWRWYWx1ZSA9IDQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50
cHRyX3QgZmF0RmxhZyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgcmVzZXJ2
ZWRGbGFnID0gMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBmbGFncyA9IGZhdEZs
YWcgfCByZXNlcnZlZEZsYWc7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgcmVzZXJ2
ZWRWYWx1ZSA9IDQ7CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZGVmYXVsdFN0YXJ0aW5n
U2l6ZSA9IDQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBkZWZhdWx0U3RhcnRpbmdT
aXplID0gNDsKICAgICAKICAgICBORVZFUl9JTkxJTkUgYm9vbCBhZGRPdXRPZkxpbmUoVCB2YWx1
ZSkKICAgICB7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL1VSTC5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XVEYvd3Rm
L1VSTC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdURiB7
CiB0eXBlZGVmIFZlY3RvcjxjaGFyLCA1MTI+IENoYXJCdWZmZXI7CiB0eXBlZGVmIFZlY3RvcjxV
Q2hhciwgNTEyPiBVQ2hhckJ1ZmZlcjsKIAotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludmFsaWRQ
b3J0TnVtYmVyID0gMHhGRkZGOworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBpbnZhbGlkUG9y
dE51bWJlciA9IDB4RkZGRjsKIAogLy8gQ29waWVzIHRoZSBzb3VyY2UgdG8gdGhlIGRlc3RpbmF0
aW9uLCBhc3N1bWluZyBhbGwgdGhlIHNvdXJjZSBjaGFyYWN0ZXJzIGFyZQogLy8gQVNDSUkuIFRo
ZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBiZSBsYXJnZSBlbm91Z2guIE51bGwgY2hhcmFjdGVy
cyBhcmUgYWxsb3dlZApJbmRleDogU291cmNlL1dURi93dGYvVVJMSGFzaC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvd3RmL1VSTEhhc2guaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNl
L1dURi93dGYvVVJMSGFzaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzLDcgKzQzLDcgQEAgc3RydWN0IFVS
TEhhc2ggewogICAgICAgICByZXR1cm4gU3RyaW5nSGFzaDo6ZXF1YWwoYS5zdHJpbmcoKSwgYi5z
dHJpbmcoKSk7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRv
Q29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKIH07CiAKIC8vIFVSTEhhc2ggaXMgdGhl
IGRlZmF1bHQgaGFzaCBmb3IgU3RyaW5nCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9VUkxQYXJzZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1VSTFBhcnNlci5jcHAJKHJldmlzaW9u
IDI0OTk1OSkKKysrIFNvdXJjZS9XVEYvd3RmL1VSTFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC02NTIsMTEgKzY1MiwxMSBAQCB2b2lkIFVSTFBhcnNlcjo6ZW5jb2RlTm9uVVRGOFF1ZXJ5
KGNvbnN0CiAKIE9wdGlvbmFsPHVpbnQxNl90PiBVUkxQYXJzZXI6OmRlZmF1bHRQb3J0Rm9yUHJv
dG9jb2woU3RyaW5nVmlldyBzY2hlbWUpCiB7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IGZ0
cFBvcnQgPSAyMTsKLSAgICBzdGF0aWMgY29uc3QgdWludDE2X3QgaHR0cFBvcnQgPSA4MDsKLSAg
ICBzdGF0aWMgY29uc3QgdWludDE2X3QgaHR0cHNQb3J0ID0gNDQzOwotICAgIHN0YXRpYyBjb25z
dCB1aW50MTZfdCB3c1BvcnQgPSA4MDsKLSAgICBzdGF0aWMgY29uc3QgdWludDE2X3Qgd3NzUG9y
dCA9IDQ0MzsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGZ0cFBvcnQgPSAyMTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGh0dHBQb3J0ID0gODA7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1aW50MTZfdCBodHRwc1BvcnQgPSA0NDM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50MTZfdCB3c1BvcnQgPSA4MDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IHdzc1Bv
cnQgPSA0NDM7CiAgICAgCiAgICAgYXV0byBsZW5ndGggPSBzY2hlbWUubGVuZ3RoKCk7CiAgICAg
aWYgKCFsZW5ndGgpCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dU
Ri93dGYvVmVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENv
cHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
ICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTkwLDggKzU5MCw4IEBAIHByaXZhdGU6CiAjaWYg
QVNBTl9FTkFCTEVECiAgICAgLy8gQVNhbiBuZWVkcyB0aGUgYnVmZmVyIHRvIGJlZ2luIGFuZCBl
bmQgb24gOC1ieXRlIGJvdW5kYXJpZXMgZm9yIGFubm90YXRpb25zIHRvIHdvcmsuCiAgICAgLy8g
RklYTUU6IEFkZCBhIHJlZHpvbmUgYmVmb3JlIHRoZSBidWZmZXIgdG8gY2F0Y2ggb2ZmIGJ5IG9u
ZSBhY2Nlc3Nlcy4gV2UgZG9uJ3QgbmVlZCBhIGd1YXJkIGFmdGVyLCBiZWNhdXNlIHRoZSBidWZm
ZXIgaXMgdGhlIGxhc3QgbWVtYmVyIHZhcmlhYmxlLgotICAgIHN0YXRpYyBjb25zdCBzaXplX3Qg
YXNhbklubGluZUJ1ZmZlckFsaWdubWVudCA9IHN0ZDo6YWxpZ25tZW50X29mPFQ+Ojp2YWx1ZSA+
PSA4ID8gc3RkOjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlIDogODsKLSAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IGFzYW5BZGp1c3RlZElubGluZUNhcGFjaXR5ID0gKChzaXplb2YoVCkgKiBpbmxpbmVD
YXBhY2l0eSArIDcpICYgfjcpIC8gc2l6ZW9mKFQpOworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6
ZV90IGFzYW5JbmxpbmVCdWZmZXJBbGlnbm1lbnQgPSBzdGQ6OmFsaWdubWVudF9vZjxUPjo6dmFs
dWUgPj0gOCA/IHN0ZDo6YWxpZ25tZW50X29mPFQ+Ojp2YWx1ZSA6IDg7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBzaXplX3QgYXNhbkFkanVzdGVkSW5saW5lQ2FwYWNpdHkgPSAoKHNpemVvZihUKSAq
IGlubGluZUNhcGFjaXR5ICsgNykgJiB+NykgLyBzaXplb2YoVCk7CiAgICAgdHlwZW5hbWUgc3Rk
OjphbGlnbmVkX3N0b3JhZ2U8c2l6ZW9mKFQpLCBhc2FuSW5saW5lQnVmZmVyQWxpZ25tZW50Pjo6
dHlwZSBtX2lubGluZUJ1ZmZlclthc2FuQWRqdXN0ZWRJbmxpbmVDYXBhY2l0eV07CiAjZWxzZQog
ICAgIHR5cGVuYW1lIHN0ZDo6YWxpZ25lZF9zdG9yYWdlPHNpemVvZihUKSwgc3RkOjphbGlnbm1l
bnRfb2Y8VD46OnZhbHVlPjo6dHlwZSBtX2lubGluZUJ1ZmZlcltpbmxpbmVDYXBhY2l0eV07Cklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9WZWN0b3JUcmFpdHMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9WZWN0b3JUcmFpdHMuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93
dGYvVmVjdG9yVHJhaXRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzYsMjMgKzM2LDIzIEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgc3RydWN0IFZlY3Rv
clRyYWl0c0Jhc2U8ZmFsc2UsIFQ+CiAgICAgewotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBu
ZWVkc0luaXRpYWxpemF0aW9uID0gdHJ1ZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2Fu
SW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSBmYWxzZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
Y2FuTW92ZVdpdGhNZW1jcHkgPSBmYWxzZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2Fu
Q29weVdpdGhNZW1jcHkgPSBmYWxzZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuRmls
bFdpdGhNZW1zZXQgPSBmYWxzZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuQ29tcGFy
ZVdpdGhNZW1jbXAgPSBmYWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRz
SW5pdGlhbGl6YXRpb24gPSB0cnVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2Fu
SW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSBmYWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGNhbk1vdmVXaXRoTWVtY3B5ID0gZmFsc2U7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBjYW5Db3B5V2l0aE1lbWNweSA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgY2FuRmlsbFdpdGhNZW1zZXQgPSBmYWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIGNhbkNvbXBhcmVXaXRoTWVtY21wID0gZmFsc2U7CiAgICAgfTsKIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CiAgICAgc3RydWN0IFZlY3RvclRyYWl0c0Jhc2U8dHJ1ZSwgVD4KICAg
ICB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzSW5pdGlhbGl6YXRpb24gPSBmYWxz
ZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSB0
cnVlOwotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBjYW5Nb3ZlV2l0aE1lbWNweSA9IHRydWU7
Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGNhbkNvcHlXaXRoTWVtY3B5ID0gdHJ1ZTsKLSAg
ICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuRmlsbFdpdGhNZW1zZXQgPSBzaXplb2YoVCkgPT0g
c2l6ZW9mKGNoYXIpICYmIHN0ZDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlOwotICAgICAgICBzdGF0
aWMgY29uc3QgYm9vbCBjYW5Db21wYXJlV2l0aE1lbWNtcCA9IHRydWU7CisgICAgICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBuZWVkc0luaXRpYWxpemF0aW9uID0gZmFsc2U7CisgICAgICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Jbml0aWFsaXplV2l0aE1lbXNldCA9IHRydWU7CisgICAg
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Nb3ZlV2l0aE1lbWNweSA9IHRydWU7CisgICAg
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Db3B5V2l0aE1lbWNweSA9IHRydWU7CisgICAg
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5GaWxsV2l0aE1lbXNldCA9IHNpemVvZihUKSA9
PSBzaXplb2YoY2hhcikgJiYgc3RkOjppc19pbnRlZ3JhbDxUPjo6dmFsdWU7CisgICAgICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Db21wYXJlV2l0aE1lbWNtcCA9IHRydWU7CiAgICAgfTsK
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CkBAIC02MCw5ICs2MCw5IEBAIG5hbWVzcGFjZSBX
VEYgewogCiAgICAgc3RydWN0IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIDogVmVjdG9yVHJhaXRz
QmFzZTxmYWxzZSwgdm9pZD4KICAgICB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGNhbklu
aXRpYWxpemVXaXRoTWVtc2V0ID0gdHJ1ZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2Fu
TW92ZVdpdGhNZW1jcHkgPSB0cnVlOwotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBjYW5Db21w
YXJlV2l0aE1lbWNtcCA9IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5J
bml0aWFsaXplV2l0aE1lbXNldCA9IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBjYW5Nb3ZlV2l0aE1lbWNweSA9IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBjYW5Db21wYXJlV2l0aE1lbWNtcCA9IHRydWU7CiAgICAgfTsKIAogICAgIC8vIFdlIGtub3cg
c21hcnQgcG9pbnRlcnMgYXJlIHNpbXBsZSBlbm91Z2ggdGhhdCBpbml0aWFsaXppbmcgdG8gMCBh
bmQgbW92aW5nIHdpdGggbWVtY3B5CkBAIC03OSwxMiArNzksMTIgQEAgbmFtZXNwYWNlIFdURiB7
CiAgICAgICAgIHR5cGVkZWYgVmVjdG9yVHJhaXRzPEZpcnN0PiBGaXJzdFRyYWl0czsKICAgICAg
ICAgdHlwZWRlZiBWZWN0b3JUcmFpdHM8U2Vjb25kPiBTZWNvbmRUcmFpdHM7CiAKLSAgICAgICAg
c3RhdGljIGNvbnN0IGJvb2wgbmVlZHNJbml0aWFsaXphdGlvbiA9IEZpcnN0VHJhaXRzOjpuZWVk
c0luaXRpYWxpemF0aW9uIHx8IFNlY29uZFRyYWl0czo6bmVlZHNJbml0aWFsaXphdGlvbjsKLSAg
ICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSBGaXJzdFRy
YWl0czo6Y2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgJiYgU2Vjb25kVHJhaXRzOjpjYW5Jbml0aWFs
aXplV2l0aE1lbXNldDsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuTW92ZVdpdGhNZW1j
cHkgPSBGaXJzdFRyYWl0czo6Y2FuTW92ZVdpdGhNZW1jcHkgJiYgU2Vjb25kVHJhaXRzOjpjYW5N
b3ZlV2l0aE1lbWNweTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuQ29weVdpdGhNZW1j
cHkgPSBGaXJzdFRyYWl0czo6Y2FuQ29weVdpdGhNZW1jcHkgJiYgU2Vjb25kVHJhaXRzOjpjYW5D
b3B5V2l0aE1lbWNweTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuRmlsbFdpdGhNZW1z
ZXQgPSBmYWxzZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuQ29tcGFyZVdpdGhNZW1j
bXAgPSBGaXJzdFRyYWl0czo6Y2FuQ29tcGFyZVdpdGhNZW1jbXAgJiYgU2Vjb25kVHJhaXRzOjpj
YW5Db21wYXJlV2l0aE1lbWNtcDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRz
SW5pdGlhbGl6YXRpb24gPSBGaXJzdFRyYWl0czo6bmVlZHNJbml0aWFsaXphdGlvbiB8fCBTZWNv
bmRUcmFpdHM6Om5lZWRzSW5pdGlhbGl6YXRpb247CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBjYW5Jbml0aWFsaXplV2l0aE1lbXNldCA9IEZpcnN0VHJhaXRzOjpjYW5Jbml0aWFsaXpl
V2l0aE1lbXNldCAmJiBTZWNvbmRUcmFpdHM6OmNhbkluaXRpYWxpemVXaXRoTWVtc2V0OworICAg
ICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2FuTW92ZVdpdGhNZW1jcHkgPSBGaXJzdFRyYWl0
czo6Y2FuTW92ZVdpdGhNZW1jcHkgJiYgU2Vjb25kVHJhaXRzOjpjYW5Nb3ZlV2l0aE1lbWNweTsK
KyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbkNvcHlXaXRoTWVtY3B5ID0gRmlyc3RU
cmFpdHM6OmNhbkNvcHlXaXRoTWVtY3B5ICYmIFNlY29uZFRyYWl0czo6Y2FuQ29weVdpdGhNZW1j
cHk7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5GaWxsV2l0aE1lbXNldCA9IGZh
bHNlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2FuQ29tcGFyZVdpdGhNZW1jbXAg
PSBGaXJzdFRyYWl0czo6Y2FuQ29tcGFyZVdpdGhNZW1jbXAgJiYgU2Vjb25kVHJhaXRzOjpjYW5D
b21wYXJlV2l0aE1lbWNtcDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL1dhbGxUaW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvV2Fs
bFRpbWUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYvV2FsbFRpbWUuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIFByaW50U3RyZWFtOwogY2xhc3MgV2Fs
bFRpbWUgZmluYWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IHN0YXRpYyBjb25zdCBDbG9ja1R5cGUgY2xvY2tUeXBlID0gQ2xvY2tUeXBlOjpXYWxsOworICAg
IHN0YXRpYyBjb25zdGV4cHIgQ2xvY2tUeXBlIGNsb2NrVHlwZSA9IENsb2NrVHlwZTo6V2FsbDsK
ICAgICAKICAgICAvLyBUaGlzIGlzIHRoZSBlcG9jaC4gU28sIHguc2Vjb25kc1NpbmNlRXBvY2go
KSBzaG91bGQgYmUgdGhlIHNhbWUgYXMgeCAtIFdhbGxUaW1lKCkuCiAgICAgY29uc3RleHByIFdh
bGxUaW1lKCkgeyB9CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9XZWFrSGFzaFNldC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1dlYWtIYXNoU2V0LmgJKHJldmlzaW9uIDI0OTk1OSkKKysr
IFNvdXJjZS9XVEYvd3RmL1dlYWtIYXNoU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3LCAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNyAr
MzMsNyBAQAogbmFtZXNwYWNlIFdURiB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8
UmVmPFdlYWtQdHJJbXBsPj4gOiBSZWZIYXNoVHJhaXRzPFdlYWtQdHJJbXBsPiB7Ci0gICAgc3Rh
dGljIGNvbnN0IGJvb2wgaGFzSXNSZWxlYXNlZFdlYWtWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgaGFzSXNSZWxlYXNlZFdlYWtWYWx1ZUZ1bmN0aW9uID0g
dHJ1ZTsKICAgICBzdGF0aWMgYm9vbCBpc1JlbGVhc2VkV2Vha1ZhbHVlKGNvbnN0IFJlZjxXZWFr
UHRySW1wbD4mIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuICF2YWx1ZS5pc0hhc2hUYWJs
ZURlbGV0ZWRWYWx1ZSgpICYmICF2YWx1ZS5pc0hhc2hUYWJsZUVtcHR5VmFsdWUoKSAmJiAhdmFs
dWUuZ2V0KCk7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Xb3JkTG9jay5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvd3RmL1dvcmRMb2NrLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9X
VEYvd3RmL1dvcmRMb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04NCw5ICs4NCw5IEBAIHB1Ymxp
YzoKIHByb3RlY3RlZDoKICAgICBmcmllbmQgc3RydWN0IFRlc3RXZWJLaXRBUEk6OkxvY2tJbnNw
ZWN0b3I7CiAgICAgCi0gICAgc3RhdGljIGNvbnN0IHVpbnRwdHJfdCBpc0xvY2tlZEJpdCA9IDE7
Ci0gICAgc3RhdGljIGNvbnN0IHVpbnRwdHJfdCBpc1F1ZXVlTG9ja2VkQml0ID0gMjsKLSAgICBz
dGF0aWMgY29uc3QgdWludHB0cl90IHF1ZXVlSGVhZE1hc2sgPSAzOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludHB0cl90IGlzTG9ja2VkQml0ID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVp
bnRwdHJfdCBpc1F1ZXVlTG9ja2VkQml0ID0gMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRw
dHJfdCBxdWV1ZUhlYWRNYXNrID0gMzsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGxv
Y2tTbG93KCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgdW5sb2NrU2xvdygpOwpJbmRl
eDogU291cmNlL1dURi93dGYvY29jb2EvQ1BVVGltZUNvY29hLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV1RGL3d0Zi9jb2NvYS9DUFVUaW1lQ29jb2EuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisr
KyBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9DUFVUaW1lQ29jb2EuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIGNvbnN0IGludDY0
X3QgbWljcm9zZWNvbmRzUGVyU2Vjb25kID0gMTAwMDAwMDsKK3N0YXRpYyBjb25zdGV4cHIgaW50
NjRfdCBtaWNyb3NlY29uZHNQZXJTZWNvbmQgPSAxMDAwMDAwOwogCiBzdGF0aWMgaW50NjRfdCB0
aW1lVmFsdWVUb01pY3Jvc2Vjb25kcyhjb25zdCB0aW1lX3ZhbHVlX3QmIHZhbHVlKQogewpJbmRl
eDogU291cmNlL1dURi93dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi93dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29j
b2EubW0JKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XVEYvd3RmL2NvY29hL01lbW9yeVBy
ZXNzdXJlSGFuZGxlckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjAsNyArNjAsNyBAQCBz
dGF0aWMgaW50IG5vdGlmeVRva2Vuc1szXTsKIC8vIGxvdyBtZW1vcnkgZXZlbnRzLCBncmVhdGx5
IHJlZHVjaW5nIENQVSB1c2FnZS4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIHNfbWluaW11bUhvbGRP
ZmZUaW1lIHsgNV9zIH07CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgY29uc3Qg
dW5zaWduZWQgc19ob2xkT2ZmTXVsdGlwbGllciA9IDIwOworc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBzX2hvbGRPZmZNdWx0aXBsaWVyID0gMjA7CiAjZW5kaWYKIAogdm9pZCBNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6Omluc3RhbGwoKQpJbmRleDogU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2Uv
UGVyc2lzdGVudERlY29kZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9wZXJzaXN0
ZW5jZS9QZXJzaXN0ZW50RGVjb2Rlci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV1RG
L3d0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50RGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05
NSw3ICs5NSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGJ1ZmZlcklzTGFyZ2VFbm91Z2hU
b0NvbnRhaW4obnVtRWxlbWVudHMgKiBzaXplb2YoVCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBj
b25zdCBib29sIGlzSVBDRGVjb2RlciA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBpc0lQQ0RlY29kZXIgPSBmYWxzZTsKIAogcHJpdmF0ZToKICAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgYm9vbCBidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluKHNpemVfdCkgY29uc3Q7CkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50RW5jb2Rlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRFbmNvZGVyLmgJKHJl
dmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRF
bmNvZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCB1cGRhdGVDaGVja3N1bUZvckRhdGEoU0hBMSYs
IGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlPiBz
dGF0aWMgdm9pZCB1cGRhdGVDaGVja3N1bUZvck51bWJlcihTSEExJiwgVHlwZSk7CiAKLSAgICBz
dGF0aWMgY29uc3QgYm9vbCBpc0lQQ0VuY29kZXIgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgaXNJUENFbmNvZGVyID0gZmFsc2U7CiAKIHByaXZhdGU6CiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHZvaWQgZW5jb2RlKGJvb2wpOwpAQCAtMTAwLDE2ICsxMDAsMTYgQEAgcHJpdmF0
ZToKICAgICBTSEExIG1fc2hhMTsKIH07CiAKLXRlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpT
YWx0PGJvb2w+IHsgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gMzsgfTsKLXRlbXBsYXRl
IDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PHVpbnQ4X3Q+IHsgc3RhdGljIGNvbnN0ICB1bnNpZ25l
ZCB2YWx1ZSA9IDU7IH07Ci10ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDx1aW50MTZf
dD4geyBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSA3OyB9OwotdGVtcGxhdGUgPD4gc3Ry
dWN0IEVuY29kZXI6OlNhbHQ8dWludDMyX3Q+IHsgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZhbHVl
ID0gMTE7IH07Ci10ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDx1aW50NjRfdD4geyBz
dGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSAxMzsgfTsKLXRlbXBsYXRlIDw+IHN0cnVjdCBF
bmNvZGVyOjpTYWx0PGludDMyX3Q+IHsgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gMTc7
IH07Ci10ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDxpbnQ2NF90PiB7IHN0YXRpYyBj
b25zdCB1bnNpZ25lZCB2YWx1ZSA9IDE5OyB9OwotdGVtcGxhdGUgPD4gc3RydWN0IEVuY29kZXI6
OlNhbHQ8ZmxvYXQ+IHsgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gMjM7IH07Ci10ZW1w
bGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDxkb3VibGU+IHsgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHZhbHVlID0gMjk7IH07Ci10ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDx1aW50
OF90Kj4geyBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSAxMDE7IH07Cit0ZW1wbGF0ZSA8
PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDxib29sPiB7IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
dmFsdWUgPSAzOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8dWludDhfdD4g
eyBzdGF0aWMgY29uc3RleHByICB1bnNpZ25lZCB2YWx1ZSA9IDU7IH07Cit0ZW1wbGF0ZSA8PiBz
dHJ1Y3QgRW5jb2Rlcjo6U2FsdDx1aW50MTZfdD4geyBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IHZhbHVlID0gNzsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PHVpbnQzMl90
PiB7IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgdmFsdWUgPSAxMTsgfTsKK3RlbXBsYXRlIDw+
IHN0cnVjdCBFbmNvZGVyOjpTYWx0PHVpbnQ2NF90PiB7IHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgdmFsdWUgPSAxMzsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PGludDMy
X3Q+IHsgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB2YWx1ZSA9IDE3OyB9OwordGVtcGxhdGUg
PD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8aW50NjRfdD4geyBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIHZhbHVlID0gMTk7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDxmbG9h
dD4geyBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZhbHVlID0gMjM7IH07Cit0ZW1wbGF0ZSA8
PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDxkb3VibGU+IHsgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCB2YWx1ZSA9IDI5OyB9OwordGVtcGxhdGUgPD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8dWludDhf
dCo+IHsgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB2YWx1ZSA9IDEwMTsgfTsKIAogdGVtcGxh
dGUgPHR5cGVuYW1lIFR5cGU+CiB2b2lkIEVuY29kZXI6OnVwZGF0ZUNoZWNrc3VtRm9yTnVtYmVy
KFNIQTEmIHNoYTEsIFR5cGUgdmFsdWUpCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21T
dHJpbmdIYXNoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5n
SGFzaC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJp
bmdIYXNoLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDQsMTEgKzQ0LDExIEBAIG5hbWVzcGFjZSBXVEYgewog
ICAgICAgICAgICAgcmV0dXJuIGEgPT0gYjsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBj
b25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAgICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZh
bHNlOwogICAgIH07CiAKICAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdURjo6QXRv
bVN0cmluZz4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8V1RGOjpBdG9tU3RyaW5nPiB7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBib29sIGhhc0lzRW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKKyAg
ICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGhhc0lzRW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1
ZTsKICAgICAgICAgc3RhdGljIGJvb2wgaXNFbXB0eVZhbHVlKGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gdmFsdWUuaXNOdWxsKCk7CkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L0NTdHJpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi90ZXh0L0NTdHJpbmcuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dURi93dGYv
dGV4dC9DU3RyaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDAzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDAzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05Niw3ICs5Niw3IEBAIFdURl9FWFBP
UlRfUFJJVkFURSBib29sIG9wZXJhdG9yPChjb25zdCAKIHN0cnVjdCBDU3RyaW5nSGFzaCB7CiAg
ICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgQ1N0cmluZyYgc3RyaW5nKSB7IHJldHVybiBz
dHJpbmcuaGFzaCgpOyB9CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIGVxdWFs
KGNvbnN0IENTdHJpbmcmIGEsIGNvbnN0IENTdHJpbmcmIGIpOwotICAgIHN0YXRpYyBjb25zdCBi
b29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IERlZmF1bHRIYXNoOwpJbmRleDogU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3
IEBAIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4Q2FwYWNpdHkgPSAKIAogc3RhdGljIHVu
c2lnbmVkIGV4cGFuZGVkQ2FwYWNpdHkodW5zaWduZWQgY2FwYWNpdHksIHVuc2lnbmVkIHJlcXVp
cmVkTGVuZ3RoKQogewotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtaW5pbXVtQ2FwYWNpdHkg
PSAxNjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1pbmltdW1DYXBhY2l0eSA9IDE2
OwogICAgIHJldHVybiBzdGQ6Om1heChyZXF1aXJlZExlbmd0aCwgc3RkOjptYXgobWluaW11bUNh
cGFjaXR5LCBzdGQ6Om1pbihjYXBhY2l0eSAqIDIsIG1heENhcGFjaXR5KSkpOwogfQogCkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0hhc2guaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0hhc2guaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdIYXNoLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQKICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAwOS4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC03NSw3ICs3NSw3IEBAIG5hbWVz
cGFjZSBXVEYgewogICAgICAgICAgICAgcmV0dXJuIGVxdWFsKGEuaW1wbCgpLCBiLmltcGwoKSk7
CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2Fm
ZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCiAgICAgc3RydWN0
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaCB7CkBAIC0xNTQsNyArMTU0LDcgQEAgbmFtZXNwYWNl
IFdURiB7CiAgICAgICAgICAgICByZXR1cm4gYSA9PSBiIHx8IGVxdWFsKGEuaW1wbCgpLCBiLmlt
cGwoKSk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCiAgICAg
Ly8gVGhpcyBoYXNoIGNhbiBiZSB1c2VkIGluIGNhc2VzIHdoZXJlIHRoZSBrZXkgaXMgYSBoYXNo
IG9mIGEgc3RyaW5nLCBidXQgd2UgZG9uJ3QKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5o
CShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkg
TGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTk0LDcgKzk0
LDcgQEAgc3RydWN0IFN0cmluZ1N0YXRzIHsKICAgICB2b2lkIHJlbW92ZVN0cmluZyhTdHJpbmdJ
bXBsJik7CiAgICAgdm9pZCBwcmludFN0YXRzKCk7CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgc19wcmludFN0cmluZ1N0YXRzRnJlcXVlbmN5ID0gNTAwMDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIHNfcHJpbnRTdHJpbmdTdGF0c0ZyZXF1ZW5jeSA9IDUwMDA7CiAgICAgc3Rh
dGljIHN0ZDo6YXRvbWljPHVuc2lnbmVkPiBzX3N0cmluZ1JlbW92ZXNUaWxsUHJpbnRTdGF0czsK
IAogICAgIHN0ZDo6YXRvbWljPHVuc2lnbmVkPiBtX3JlZkNhbGxzOwpAQCAtNTE5LDggKzUxOSw4
IEBAIHByaXZhdGU6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIE5FVkVSX0lOTElORSB1bnNpZ25l
ZCBoYXNoU2xvd0Nhc2UoKSBjb25zdDsKIAogICAgIC8vIFRoZSBib3R0b20gYml0IGluIHRoZSBy
ZWYgY291bnQgaW5kaWNhdGVzIGEgc3RhdGljIChpbW1vcnRhbCkgc3RyaW5nLgotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBzX3JlZkNvdW50RmxhZ0lzU3RhdGljU3RyaW5nID0gMHgxOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX3JlZkNvdW50SW5jcmVtZW50ID0gMHgyOyAvLyBUaGlz
IGFsbG93cyB1cyB0byByZWYgLyBkZXJlZiB3aXRob3V0IGRpc3R1cmJpbmcgdGhlIHN0YXRpYyBz
dHJpbmcgZmxhZy4KKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNfcmVmQ291bnRGbGFn
SXNTdGF0aWNTdHJpbmcgPSAweDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzX3Jl
ZkNvdW50SW5jcmVtZW50ID0gMHgyOyAvLyBUaGlzIGFsbG93cyB1cyB0byByZWYgLyBkZXJlZiB3
aXRob3V0IGRpc3R1cmJpbmcgdGhlIHN0YXRpYyBzdHJpbmcgZmxhZy4KIAogI2lmIFNUUklOR19T
VEFUUwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgU3RyaW5nU3RhdHMgbV9zdHJpbmdT
dGF0czsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lv
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVG9JbnRlZ2VyQ29u
dmVyc2lvbi5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z1RvSW50ZWdlckNvbnZlcnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw4ICs0NSw4IEBAIGlubGlu
ZSBib29sIGlzQ2hhcmFjdGVyQWxsb3dlZEluQmFzZShVQ2gKIHRlbXBsYXRlPHR5cGVuYW1lIElu
dGVncmFsVHlwZSwgdHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIGlubGluZSBJbnRlZ3JhbFR5cGUg
dG9JbnRlZ3JhbFR5cGUoY29uc3QgQ2hhcmFjdGVyVHlwZSogZGF0YSwgc2l6ZV90IGxlbmd0aCwg
Ym9vbCogb2sgPSBudWxscHRyLCBpbnQgYmFzZSA9IDEwKQogewotICAgIHN0YXRpYyBjb25zdCBJ
bnRlZ3JhbFR5cGUgaW50ZWdyYWxNYXggPSBzdGQ6Om51bWVyaWNfbGltaXRzPEludGVncmFsVHlw
ZT46Om1heCgpOwotICAgIHN0YXRpYyBjb25zdCBib29sIGlzU2lnbmVkID0gc3RkOjpudW1lcmlj
X2xpbWl0czxJbnRlZ3JhbFR5cGU+Ojppc19zaWduZWQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBJ
bnRlZ3JhbFR5cGUgaW50ZWdyYWxNYXggPSBzdGQ6Om51bWVyaWNfbGltaXRzPEludGVncmFsVHlw
ZT46Om1heCgpOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc1NpZ25lZCA9IHN0ZDo6bnVt
ZXJpY19saW1pdHM8SW50ZWdyYWxUeXBlPjo6aXNfc2lnbmVkOwogICAgIGNvbnN0IEludGVncmFs
VHlwZSBtYXhNdWx0aXBsaWVyID0gaW50ZWdyYWxNYXggLyBiYXNlOwogCiAgICAgSW50ZWdyYWxU
eXBlIHZhbHVlID0gMDsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvU3ltYm9sUmVnaXN0cnku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N5bWJvbFJlZ2lzdHJ5LmgJKHJl
dmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvU3ltYm9sUmVnaXN0cnkuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
WXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTY4LDcgKzY5LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhh
c2g8U3ltYm9sUmVnaQogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxTeW1ib2xS
ZWdpc3RyeUtleT4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8U3ltYm9sUmVnaXN0cnlLZXk+IHsK
LSAgICBzdGF0aWMgY29uc3QgYm9vbCBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiA9IHRydWU7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGhhc0lzRW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsK
ICAgICBzdGF0aWMgYm9vbCBpc0VtcHR5VmFsdWUoY29uc3QgU3ltYm9sUmVnaXN0cnlLZXkmIGtl
eSkKICAgICB7CiAgICAgICAgIHJldHVybiBrZXkuaW1wbCgpID09IG51bGxwdHI7CkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL3RleHQvVGV4dFN0cmVhbS5jcHAJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9X
VEYvd3RmL3RleHQvVGV4dFN0cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEs
MTEgKzMxLDExIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdGF0aWMgY29uc3Qgc2l6ZV90IHBy
aW50QnVmZmVyU2l6ZSA9IDEwMDsgLy8gbGFyZ2UgZW5vdWdoIGZvciBhbnkgaW50ZWdlciBvciBm
bG9hdGluZyBwb2ludCB2YWx1ZSBpbiBzdHJpbmcgZm9ybWF0LCBpbmNsdWRpbmcgdHJhaWxpbmcg
bnVsbCBjaGFyYWN0ZXIKK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHByaW50QnVmZmVyU2l6ZSA9
IDEwMDsgLy8gbGFyZ2UgZW5vdWdoIGZvciBhbnkgaW50ZWdlciBvciBmbG9hdGluZyBwb2ludCB2
YWx1ZSBpbiBzdHJpbmcgZm9ybWF0LCBpbmNsdWRpbmcgdHJhaWxpbmcgbnVsbCBjaGFyYWN0ZXIK
IAogc3RhdGljIGlubGluZSBib29sIGhhc0ZyYWN0aW9ucyhkb3VibGUgdmFsKQogewotICAgIHN0
YXRpYyBjb25zdCBkb3VibGUgc19lcHNpbG9uID0gMC4wMDAxOworICAgIHN0YXRpYyBjb25zdGV4
cHIgZG91YmxlIHNfZXBzaWxvbiA9IDAuMDAwMTsKICAgICBpbnQgaXZhbCA9IHN0YXRpY19jYXN0
PGludD4odmFsKTsKICAgICBkb3VibGUgZHZhbCA9IHN0YXRpY19jYXN0PGRvdWJsZT4oaXZhbCk7
CiAgICAgcmV0dXJuIGZhYnModmFsIC0gZHZhbCkgPiBzX2Vwc2lsb247CkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3Rl
eHQvV1RGU3RyaW5nLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQv
V1RGU3RyaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogKEMpIDE5
OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtNDQ0LDggKzQ0NCw4IEBAIFdURl9FWFBPUlRfUFJJVkFURSBjb25zdCBTdHJpbmcmIG51bGxT
dHIKIHRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgRGVmYXVsdEhhc2g7CiB0ZW1wbGF0ZTw+IHN0
cnVjdCBEZWZhdWx0SGFzaDxTdHJpbmc+IHsgdXNpbmcgSGFzaCA9IFN0cmluZ0hhc2g7IH07CiB0
ZW1wbGF0ZTw+IHN0cnVjdCBWZWN0b3JUcmFpdHM8U3RyaW5nPiA6IFZlY3RvclRyYWl0c0Jhc2U8
ZmFsc2UsIHZvaWQ+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBjYW5Jbml0aWFsaXplV2l0aE1l
bXNldCA9IHRydWU7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuTW92ZVdpdGhNZW1jcHkgPSB0
cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Jbml0aWFsaXplV2l0aE1lbXNldCA9
IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbk1vdmVXaXRoTWVtY3B5ID0gdHJ1
ZTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb25UcmFp
dDxTdHJpbmc+IHsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvY29jb2EvVGV4dEJyZWFrSXRl
cmF0b3JJbnRlcm5hbElDVUNvY29hLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90
ZXh0L2NvY29hL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VDb2NvYS5jcHAJKHJldmlzaW9u
IDI0OTk1OSkKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvY29jb2EvVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVUNvY29hLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00NSw3ICs0NSw3IEBAIFRleHRCcmVha0l0ZXJh
dG9yOjpUZXh0QnJlYWtJdGVyYXRvcihTdHIKIHsKIH0KIAotc3RhdGljIGNvbnN0IGludCBtYXhM
b2NhbGVTdHJpbmdMZW5ndGggPSAzMjsKK3N0YXRpYyBjb25zdGV4cHIgaW50IG1heExvY2FsZVN0
cmluZ0xlbmd0aCA9IDMyOwogCiBzdGF0aWMgaW5saW5lIFJldGFpblB0cjxDRlN0cmluZ1JlZj4g
dGV4dEJyZWFrTG9jYWxlUHJlZmVyZW5jZSgpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
NDk5NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSw1MiBAQAorMjAxOS0wOS0xNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisK
KyAgICAgICAgVXNlIGNvbnN0ZXhwciBpbnN0ZWFkIG9mIGNvbnN0IGluIHN5bWJvbCBkZWZpbml0
aW9ucyB0aGF0IGFyZSBvYnZpb3VzbHkgY29uc3RleHByLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAgQ292ZXJlZCBieSBleGlz
dGluZyB0ZXN0cy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JCYXNl
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dQcm9wZXJ0aWVzLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5l
cmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZVByb3RvdHlwZURlY2xhcmF0aW9uKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0Lmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRp
bmcuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEZv
ckNvbnRleHQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRUYXJnZXQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xv
YmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmg6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVu
dGlmaWVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
RGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmll
ci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
ck5vSWRlbnRpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmg6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5m
b3JnYWJsZVByb3BlcnRpZXMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0
aW5zLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5z
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVy
ZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVm
cy5oOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5oOgorICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6
CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisKIDIwMTktMDktMTcgIFphbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDW01hcmdpbkNvbGxhcHNp
bmddIE1hcmdpbkNvbGxhcHNlOjplc3RpbWF0ZWRNYXJnaW5CZWZvcmUgc2hvdWxkIHRha2UgcHJl
LWNvbXB1dGVkIG5vbi1jb2xsYXBzZWQgbWFyZ2luIHZhbHVlcy4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JCYXNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3RvckJhc2UuaAkocmV2aXNpb24g
MjQ5OTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3RvckJh
c2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChD
KSAyMDE1LCAyMDE2IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqICBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdo
dCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTI4LDcgKzI4LDcgQEAgY2xhc3MgSlNET01Db25zdHJ1Y3RvckJhc2Ug
OiBwdWJsaWMgSlNETwogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU0RPTU9iamVjdDsKIAot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgSlNDOjpJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBKU0M6OkltcGxlbWVudHNEZWZh
dWx0SGFzSW5zdGFuY2UgfCBKU0M6Ok92ZXJyaWRlc0dldENhbGxEYXRhOworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSlNDOjpJbXBsZW1lbnRzRGVmYXVsdEhhc0lu
c3RhbmNlIHwgSlNDOjpPdmVycmlkZXNHZXRDYWxsRGF0YTsKICAgICBzdGF0aWMgSlNDOjpTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6SlNWYWx1ZSk7CiAKIHByb3RlY3RlZDoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93UHJvcGVydGllcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93UHJvcGVydGllcy5oCShyZXZpc2lvbiAyNDk5NTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3BlcnRpZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3du
UHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNH
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6SXNJbW11dGFibGVQcm90b3R5cGVFeG90
aWNPYmplY3Q7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZv
clByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgSlNDOjpJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdDsKIAogcHJvdGVjdGVk
OgogICAgIEpTRE9NV2luZG93UHJvcGVydGllcyhKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBK
U0M6OkpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMjQ5
OTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0JKHdvcmtpbmcgY29weSkKQEAgLTI2MTQsNyArMjYxNCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRl
cgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cblxuIik7CiAgICAgfQogCi0g
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3Ry
dWN0aW9uID0gZmFsc2U7XG5cbiIpIGlmIElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpOwor
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRz
RGVzdHJ1Y3Rpb24gPSBmYWxzZTtcblxuIikgaWYgSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFj
ZSk7CiAKICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZSJ9
ID0gMSBpZiBJbnN0YW5jZVByb3BlcnR5Q291bnQoJGludGVyZmFjZSkgPiAwOwogICAgICRzdHJ1
Y3R1cmVGbGFnc3siSlNDOjpOZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMifSA9IDEg
aWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TmV3SW1wdXJlUHJvcGVydHlGaXJl
c1dhdGNocG9pbnRzfTsKQEAgLTI4ODIsNyArMjg4Miw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgog
ICAgICMgc3RydWN0dXJlIGZsYWdzCiAgICAgaWYgKCVzdHJ1Y3R1cmVGbGFncykgewogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHVibGljOlxuIik7Ci0gICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MiKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MiKTsKICAgICAgICAgZm9yZWFjaCBteSAkc3RydWN0dXJlRmxhZyAoc29ydCAoa2V5cyAl
c3RydWN0dXJlRmxhZ3MpKSB7CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiIHwg
IiAuICRzdHJ1Y3R1cmVGbGFnKTsKICAgICAgICAgfQpAQCAtNzEzNyw3ICs3MTM3LDcgQEAgc3Vi
IEdlbmVyYXRlUHJvdG90eXBlRGVjbGFyYXRpb24KICAgICAjIHN0cnVjdHVyZSBmbGFncwogICAg
IGlmICglc3RydWN0dXJlRmxhZ3MpIHsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAicHVi
bGljOlxuIik7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyIpOworICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIik7CiAgICAgICAgIGZvcmVhY2ggbXkg
JHN0cnVjdHVyZUZsYWcgKHNvcnQgKGtleXMgJXN0cnVjdHVyZUZsYWdzKSkgewogICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiIHwgIiAuICRzdHJ1Y3R1cmVGbGFnKTsKICAgICAgICAg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFj
dGl2ZURPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAkocmV2aXNpb24gMjQ5OTU5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURP
TU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlND
OjpIZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzUHV0UHJvcGVydHlT
ZWN1cml0eUNoZWNrIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEpTQzo6SGFzUHV0UHJvcGVydHlTZWN1cml0eUNoZWNrIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0
eVRhYmxlOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdEFjdGl2ZURPTU9iamVjdChKU0M6OlN0cnVj
dHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RBY3RpdmVET01PYmplY3Q+JiYpOwog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5h
YmxlZEJ5U2V0dGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmgJKHJldmlzaW9uIDI0OTk1OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVk
QnlTZXR0aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBK
U0M6OkhlYXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIHBy
b3RlY3RlZDoKICAgICBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nKEpTQzo6U3RydWN0dXJlKiwgSlNE
T01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEVuYWJsZWRCeVNldHRpbmc+JiYpOwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEZvckNv
bnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RW5hYmxlZEZvckNvbnRleHQuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250
ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6Okhl
YXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRh
YmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIHByb3RlY3Rl
ZDoKICAgICBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dChKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xv
YmFsT2JqZWN0JiwgUmVmPFRlc3RFbmFibGVkRm9yQ29udGV4dD4mJik7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAkod29ya2luZyBjb3B5KQpA
QCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZXN0
RXZlbnRUYXJnZXQmPihCYXNlOjp3cmFwcGVkKCkpOwogICAgIH0KIHB1YmxpYzoKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6
OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFpl
cm8gfCBKU0M6Ok1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgfCBKU0M6Ok92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlND
OjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3Ra
ZXJvIHwgSlNDOjpNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiBwcm90ZWN0ZWQ6
CiAgICAgSlNUZXN0RXZlbnRUYXJnZXQoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVj
dCYsIFJlZjxUZXN0RXZlbnRUYXJnZXQ+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVj
dC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIAotICAgIHN0YXRpYyBj
b25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOwogCiAgICAgc3RhdGljIFRlc3RHbG9iYWxP
YmplY3QqIHRvV3JhcHBlZChKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9p
ZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlND
OjpIZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVy
dHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiBwcm90
ZWN0ZWQ6CiAgICAgSlNUZXN0R2xvYmFsT2JqZWN0KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9i
YWxPYmplY3QmLCBSZWY8VGVzdEdsb2JhbE9iamVjdD4mJik7CiAKQEAgLTEwNCw3ICsxMDQsNyBA
QCBwcml2YXRlOgogICAgIHsKICAgICB9CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRp
Y1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxl
OwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgSlNET01XcmFwcGVyQ29udmVydGVyVHJhaXRzPFRl
c3RHbG9iYWxPYmplY3Q+IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXIuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6
SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVj
dCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5
emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJ
c05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJp
ZGVzR2V0UHJvcGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVz
dEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCShyZXZpc2lvbiAyNDk5
NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlND
OjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFs
eXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
SlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNO
b3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJv
cGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiBwcm90
ZWN0ZWQ6CiAgICAgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uKEpTQzo6U3Ry
dWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVh
cEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9w
ZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dl
dE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5M
ZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6
T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYs
IFJlZjxUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPiYmKTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIu
aAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5oCSh3b3JraW5n
IGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVl
IGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAg
ICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9w
ZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZl
bldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93
blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRz
R2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFt
ZXM7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5o
CShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCop
OwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVy
Jik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9y
UHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRl
eEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpH
ZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJj
ZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpT
Qzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uPiYmKTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlND
OjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5h
bHl6ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1
cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBK
U0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJ
bnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJv
IHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXM7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI+JiYpOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9J
ZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5oCShyZXZpc2lvbiAyNDk5
NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWREZWxldGVyTm9JZGVudGlmaWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYs
IGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVh
cChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpH
ZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJj
ZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpT
Qzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQ
cm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBKU1Rl
c3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9i
amVjdCYsIFJlZjxUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyPiYmKTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRo
cm93aW5nRXhjZXB0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmgJKHJl
dmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBA
IC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0
cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGlj
IHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2Vu
Y2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5n
dGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3Zl
cnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5
U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJv
cGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiBwcm90
ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24oSlNDOjpTdHJ1
Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdF
eGNlcHRpb24+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
V2l0aElkZW50aWZpZXIuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6
OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFs
eXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVy
ZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5
SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpT
Qzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6Oklu
dGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8g
fCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRp
ZmllcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3ROYW1lZERl
bGV0ZXJXaXRoSWRlbnRpZmllcj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
V2l0aEluZGV4ZWRHZXR0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29u
c3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpT
Q2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93
blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRz
R2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFt
ZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3Bl
cnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVu
V2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
SlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE5h
bWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxP
YmplY3QmLCBSZWY8VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyPiYmKTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0
dGVyQ2FsbFdpdGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5oCShyZXZpc2lvbiAyNDk5NTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRH
ZXR0ZXJDYWxsV2l0aC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxs
KiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJv
cGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlB
YnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVu
TGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6
Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWRH
ZXR0ZXJDYWxsV2l0aChKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRl
c3ROYW1lZEdldHRlckNhbGxXaXRoPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkR2V0dGVyTm9JZGVudGlmaWVyLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmll
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
SlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFw
QW5hbHl6ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJ
bXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlND
OjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3Ra
ZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dl
dFByb3BlcnR5TmFtZXM7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50
aWZpZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWRH
ZXR0ZXJOb0lkZW50aWZpZXI+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZEdldHRlcldpdGhJZGVudGlmaWVyLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlm
aWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6Okhl
YXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJ
c0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBK
U0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05v
dFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3ROYW1lZEdldHRlcldpdGhJ
ZGVudGlmaWVyKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5h
bWVkR2V0dGVyV2l0aElkZW50aWZpZXI+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6Okhl
YXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJ
c0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBK
U0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05v
dFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3ROYW1lZFNldHRlck5vSWRl
bnRpZmllcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3ROYW1l
ZFNldHRlck5vSWRlbnRpZmllcj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3Qg
SlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2Vs
bCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blBy
b3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0
T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5
QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hl
bkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlND
OjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE5hbWVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb24oSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVj
dCYsIFJlZjxUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbj4mJik7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldp
dGhJZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuaAkocmV2aXNpb24g
MjQ5OTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6
OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5
emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBK
U0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJ
bnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJv
IHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVy
ZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5
SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgogICAg
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUds
b2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj4mJik7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIu
aAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRD
b25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0
YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlB
YnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVu
TGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6
Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9w
ZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93
blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwog
cHJvdGVjdGVkOgogICAgIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIoSlNDOjpT
dHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlcj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuaAkocmV2aXNpb24gMjQ5OTU5
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTcs
NyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3Rv
cihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lk
IGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwg
SlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNO
b3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJ
c0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVk
OgogICAgIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIoSlNDOjpT
dHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlckFuZFNldHRlcj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuaAkocmV2aXNpb24gMjQ5OTU5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZN
JiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVI
ZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6
OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRP
d25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSB8IEpTQzo6SW50ZXJjZXB0c0dl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVz
OwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMo
SlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWRTZXR0ZXJX
aXRoT3ZlcnJpZGVCdWlsdGlucz4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGll
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5oCShyZXZpc2lvbiAy
NDk5NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
NTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1
Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2
b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNl
IHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJv
cGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5j
ZSB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJv
dGVjdGVkOgogICAgIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzKEpT
Qzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5hbWVkU2V0dGVyV2l0
aFVuZm9yZ2FibGVQcm9wZXJ0aWVzPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0
aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJv
cGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVu
Zm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5oCSh3b3JraW5nIGNvcHkpCkBA
IC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0
cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGlj
IHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUgfCBKU0M6Okhhc1N0YXRp
Y1Byb3BlcnR5VGFibGUgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okdl
dE93blByb3BlcnR5U2xvdElzSW1wdXJlIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlIHwg
SlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNO
b3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXM7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
VW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zKEpTQzo6U3RydWN0dXJlKiwg
SlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9w
ZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucz4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgJKHJldmlzaW9uIDI0
OTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouaAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IEpTQzo6SlNWYWx1ZSB0ZXN0U3RhdGljQ3VzdG9tUHJvbWlzZUZ1bmN0aW9uKEpTQzo6RXhlY1N0
YXRlJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAgICAgSlNDOjpKU1ZhbHVlIHRlc3RDdXN0
b21SZXR1cm5zT3duUHJvbWlzZUZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlJik7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGUgfCBKU0M6OkludGVyY2VwdHNHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJy
aWRlc0dldENhbGxEYXRhIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6
Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQ
cm9wZXJ0eVRhYmxlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2
ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRDYWxsRGF0YSB8IEpTQzo6
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5h
bWVzOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE9iaihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xv
YmFsT2JqZWN0JiwgUmVmPFRlc3RPYmo+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlk
ZUJ1aWx0aW5zLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29u
c3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0
aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVibGlj
OgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSB8IEpTQzo6SW50ZXJj
ZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpT
Qzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUgfCBK
U0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05v
dFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5z
KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE92ZXJyaWRlQnVp
bHRpbnM+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5oCShyZXZpc2lv
biAyNDk5NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0UGx1Z2luSW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNv
bnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChK
U0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpJbnRl
cmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwg
SlNDOjpPdmVycmlkZXNHZXRDYWxsRGF0YSB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0Q2FsbERhdGEgfCBK
U0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdDsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RQ
bHVnaW5JbnRlcmZhY2UoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxU
ZXN0UGx1Z2luSW50ZXJmYWNlPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgJKHJldmlzaW9u
IDI0OTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RUeXBlZGVmcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6
OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwg
SlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJv
cGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiBw
cm90ZWN0ZWQ6CiAgICAgSlNUZXN0VHlwZWRlZnMoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2Jh
bE9iamVjdCYsIFJlZjxUZXN0VHlwZWRlZnM+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9hcnJheS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX2FycmF5LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBA
IG5hbWVzcGFjZSBKU0MgewogY2xhc3MgUnVudGltZUFycmF5IDogcHVibGljIEpTQXJyYXkgewog
cHVibGljOgogICAgIHR5cGVkZWYgSlNBcnJheSBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVu
V2hlbkxlbmd0aElzTm90WmVybyB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJjZXB0c0dldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IE92ZXJyaWRlc0dldFByb3Bl
cnR5TmFtZXM7CiAKICAgICBzdGF0aWMgUnVudGltZUFycmF5KiBjcmVhdGUoRXhlY1N0YXRlKiBl
eGVjLCBCaW5kaW5nczo6QXJyYXkqIGFycmF5KQogICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX21ldGhvZC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcgKzM1LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50aW1lTWV0aG9kIDog
cHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxG
dW5jdGlvbiBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3Zl
cnJpZGVzR2V0Q2FsbERhdGE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGE7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxs
VHlwZSwgSlNDOjpTdWJzcGFjZUFjY2Vzcz4KICAgICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNw
YWNlRm9yKFZNJiB2bSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5o
CShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDMsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDAzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBC
aW5kaW5ncyB7CiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50aW1lT2JqZWN0IDogcHVibGljIEpT
RGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRGVzdHJ1Y3RpYmxl
T2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGE7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1l
cyB8IE92ZXJyaWRlc0dldENhbGxEYXRhOwogCiAgICAgc3RhdGljIFJ1bnRpbWVPYmplY3QqIGNy
ZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8SW5zdGFuY2U+JiYgaW5z
dGFuY2UpCiAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50
aW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50
aW1lLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTkzLDcgKzkzLDcgQEAgcHJpdmF0ZToK
IGNsYXNzIE9iamNGYWxsYmFja09iamVjdEltcCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVj
dCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Rlc3RydWN0aWJsZU9iamVjdCBCYXNlOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGE7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0
Q2FsbERhdGE7CiAKICAgICBzdGF0aWMgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wKiBjcmVhdGUoRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBPYmpjSW5zdGFuY2Uq
IGluc3RhbmNlLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKICAgICB7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0wOS0xNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBh
cHBsZS5jb20+CisKKyAgICAgICAgVXNlIGNvbnN0ZXhwciBpbnN0ZWFkIG9mIGNvbnN0IGluIHN5
bWJvbCBkZWZpbml0aW9ucyB0aGF0IGFyZSBvYnZpb3VzbHkgY29uc3RleHByLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODc5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oOgorCiAyMDE5LTA5LTE3ICBUcnVpdHQgU2F2ZWxsICA8
dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0
OTk1MC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBOUFJ1bnRpbWVPYmplY3RNYXA7CiBjbGFzcyBKU05Q
T2JqZWN0IGZpbmFsIDogcHVibGljIEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QgewogcHVibGlj
OgogICAgIHR5cGVkZWYgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCBCYXNlOwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
SlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3Bl
cnR5TmFtZXMgfCBKU0M6Ok92ZXJyaWRlc0dldENhbGxEYXRhOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5h
bWVzIHwgSlNDOjpPdmVycmlkZXNHZXRDYWxsRGF0YTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IENlbGxUeXBlLCBKU0M6OlN1YnNwYWNlQWNjZXNzPgogICAgIHN0YXRpYyBKU0M6Oklzb1N1YnNw
YWNlKiBzdWJzcGFjZUZvcihKU0M6OlZNJiB2bSkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0
OTk3NCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE5IEBACisyMDE5LTA5LTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVc2UgY29uc3RleHByIGluc3RlYWQgb2YgY29uc3QgaW4gc3ltYm9sIGRlZmluaXRp
b25zIHRoYXQgYXJlIG9idmlvdXNseSBjb25zdGV4cHIuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE4NzkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcDoK
KyAgICAgICAgKiBibWFsbG9jL0lzb1RMUy5oOgorICAgICAgICAqIGJtYWxsb2MvTWFwLmg6Cisg
ICAgICAgICogYm1hbGxvYy9NdXRleC5jcHA6CisgICAgICAgIChibWFsbG9jOjpNdXRleDo6bG9j
a1Nsb3dDYXNlKToKKyAgICAgICAgKiBibWFsbG9jL1BlclRocmVhZC5oOgorICAgICAgICAqIGJt
YWxsb2MvVmVjdG9yLmg6CisgICAgICAgICogYm1hbGxvYy9ab25lLmg6CisKIDIwMTktMDktMTMg
IE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFdlIHNob3VsZCBuZXZl
ciBmYWlsIHRvIGFsbG9jYXRlIFZBIGZvciB0aGUgR2lnYWNhZ2UuCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9BdmFpbGFibGVNZW1vcnkuY3BwCShyZXZpc2lvbiAyNDk5NTkpCisrKyBT
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDcgKzUzLDcgQEAKIAogbmFtZXNwYWNlIGJtYWxsb2MgewogCi1zdGF0aWMgY29uc3Qg
c2l6ZV90IGF2YWlsYWJsZU1lbW9yeUd1ZXNzID0gNTEyICogYm1hbGxvYzo6TUI7CitzdGF0aWMg
Y29uc3RleHByIHNpemVfdCBhdmFpbGFibGVNZW1vcnlHdWVzcyA9IDUxMiAqIGJtYWxsb2M6Ok1C
OwogCiAjaWYgQk9TKERBUldJTikKIHN0YXRpYyBzaXplX3QgbWVtb3J5U2l6ZUFjY29yZGluZ1Rv
S2VybmVsKCkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvVExTLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Jc29UTFMuaAkocmV2aXNpb24gMjQ5OTU5KQor
KysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Jc29UTFMuaAkod29ya2luZyBjb3B5KQpAQCAtMTA5
LDcgKzEwOSw3IEBAIHByaXZhdGU6CiAgICAgY2hhciBtX2RhdGFbMV07CiAKICNpZiBIQVZFX1BU
SFJFQURfTUFDSERFUF9ICi0gICAgc3RhdGljIGNvbnN0IHB0aHJlYWRfa2V5X3QgdGxzS2V5ID0g
X19QVEtfRlJBTUVXT1JLX0pBVkFTQ1JJUFRDT1JFX0tFWTE7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBwdGhyZWFkX2tleV90IHRsc0tleSA9IF9fUFRLX0ZSQU1FV09SS19KQVZBU0NSSVBUQ09SRV9L
RVkxOwogI2Vsc2UKICAgICBCRVhQT1JUIHN0YXRpYyBib29sIHNfZGlkSW5pdGlhbGl6ZTsKICAg
ICBCRVhQT1JUIHN0YXRpYyBwdGhyZWFkX2tleV90IHNfdGxzS2V5OwpJbmRleDogU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9NYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9j
L01hcC5oCShyZXZpc2lvbiAyNDk5NTkpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL01hcC5o
CSh3b3JraW5nIGNvcHkpCkBAIC04MCwxMCArODAsMTAgQEAgcHVibGljOgogICAgIH0KIAogcHJp
dmF0ZToKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWluQ2FwYWNpdHkgPSAxNjsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgbWF4TG9hZCA9IDI7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHJlaGFzaExvYWQgPSA0OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtaW5Mb2FkID0g
ODsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1pbkNhcGFjaXR5ID0gMTY7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhMb2FkID0gMjsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIHJlaGFzaExvYWQgPSA0OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgbWluTG9hZCA9IDg7CiAKICAgICBib29sIHNob3VsZEdyb3coKSB7IHJldHVybiBtX2tleUNv
dW50ICogbWF4TG9hZCA+PSBjYXBhY2l0eSgpOyB9CiAgICAgYm9vbCBzaG91bGRTaHJpbmsoKSB7
IHJldHVybiBtX2tleUNvdW50ICogbWluTG9hZCA8PSBjYXBhY2l0eSgpICYmIGNhcGFjaXR5KCkg
PiBtaW5DYXBhY2l0eTsgfQpJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9NdXRleC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9NdXRleC5jcHAJKHJldmlzaW9u
IDI0OTk1OSkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTXV0ZXguY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiw3ICszNiw3IEBAIHZvaWQgTXV0ZXg6OmxvY2tTbG93Q2FzZSgpCiAgICAgLy8g
VGhlIGxvbmdlc3QgY3JpdGljYWwgc2VjdGlvbiBpbiBibWFsbG9jIGlzIG11Y2ggc2hvcnRlciB0
aGFuIHRoZQogICAgIC8vIHRpbWUgaXQgdGFrZXMgdG8gbWFrZSBhIHN5c3RlbSBjYWxsIHRvIHlp
ZWxkIHRvIHRoZSBPUyBzY2hlZHVsZXIuCiAgICAgLy8gU28sIHdlIHRyeSBhZ2FpbiBhIGxvdCBi
ZWZvcmUgd2UgeWllbGQuCi0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBhTG90ID0gMjU2OworICAg
IHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGFMb3QgPSAyNTY7CiAgICAgCiAgICAgaWYgKCFtX2lz
U3Bpbm5pbmcuZXhjaGFuZ2UodHJ1ZSkpIHsKICAgICAgICAgYXV0byBjbGVhciA9IG1ha2VTY29w
ZUV4aXQoWyZdIHsgbV9pc1NwaW5uaW5nLnN0b3JlKGZhbHNlKTsgfSk7CkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL1BlclRocmVhZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvUGVyVGhyZWFkLmgJKHJldmlzaW9uIDI0OTk1OSkKKysrIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvUGVyVGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFBlclRocmVhZFN0bwogLy8gRm9yIG5vdywgd2Ugb25s
eSBzdXBwb3J0IFBlclRocmVhZDxQZXJIZWFwS2luZDxDYWNoZT4+LiBXZSBjYW4gZXhwYW5kIHRv
IG90aGVyIHR5cGVzIGJ5CiAvLyB1c2luZyBtb3JlIGtleXMuCiB0ZW1wbGF0ZTw+IHN0cnVjdCBQ
ZXJUaHJlYWRTdG9yYWdlPFBlckhlYXBLaW5kPENhY2hlPj4gewotICAgIHN0YXRpYyBjb25zdCBw
dGhyZWFkX2tleV90IGtleSA9IF9fUFRLX0ZSQU1FV09SS19KQVZBU0NSSVBUQ09SRV9LRVkwOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgcHRocmVhZF9rZXlfdCBrZXkgPSBfX1BUS19GUkFNRVdPUktf
SkFWQVNDUklQVENPUkVfS0VZMDsKIAogICAgIHN0YXRpYyB2b2lkKiBnZXQoKQogICAgIHsKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvVmVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvYm1hbGxvYy9WZWN0b3IuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9WZWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzIsOCArNzIsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzaHJpbmtUb0ZpdCgpOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBj
b25zdCBzaXplX3QgZ3Jvd0ZhY3RvciA9IDI7Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBzaHJp
bmtGYWN0b3IgPSA0OworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGdyb3dGYWN0b3IgPSAy
OworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHNocmlua0ZhY3RvciA9IDQ7CiAgICAgc3Rh
dGljIHNpemVfdCBpbml0aWFsQ2FwYWNpdHkoKSB7IHJldHVybiB2bVBhZ2VTaXplKCkgLyBzaXpl
b2YoVCk7IH0KIAogICAgIHZvaWQgZ3Jvd0NhcGFjaXR5KCk7CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL1pvbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1pv
bmUuaAkocmV2aXNpb24gMjQ5OTU5KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9ab25lLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgQ2h1bms7CiBjbGFzcyBab25l
IDogcHVibGljIG1hbGxvY196b25lX3QgewogcHVibGljOgogICAgIC8vIEVub3VnaCBjYXBhY2l0
eSB0byB0cmFjayBhIDY0R0IgaGVhcCwgc28gcHJvYmFibHkgZW5vdWdoIGZvciBhbnl0aGluZy4K
LSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGNhcGFjaXR5ID0gMjA0ODsKKyAgICBzdGF0aWMgY29u
c3RleHByIHNpemVfdCBjYXBhY2l0eSA9IDIwNDg7CiAKICAgICBab25lKHN0ZDo6bG9ja19ndWFy
ZDxNdXRleD4mKTsKICAgICBab25lKHRhc2tfdCwgbWVtb3J5X3JlYWRlcl90LCB2bV9hZGRyZXNz
X3QpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378982</attachid>
            <date>2019-09-17 13:26:23 -0700</date>
            <delta_ts>2019-09-17 13:45:12 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-201879.patch</filename>
            <type>text/plain</type>
            <size>572796</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4NCBA
QAorMjAxOS0wOS0xNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAg
VXNlIGNvbnN0ZXhwciBpbnN0ZWFkIG9mIGNvbnN0IGluIHN5bWJvbCBkZWZpbml0aW9ucyB0aGF0
IGFyZSBvYnZpb3VzbHkgY29uc3RleHByLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNBUElWYWx1ZVdyYXBwZXIuaDoKKyAgICAgICAgKiBB
UEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmg6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaDoKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0UmVmLmNwcDoKKyAgICAgICAgKiBBUEkvSlNX
cmFwcGVyTWFwLm1tOgorICAgICAgICAqIEFQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3Bw
OgorICAgICAgICAqIEFQSS90ZXN0cy9UeXBlZEFycmF5Q1Rlc3QuY3BwOgorICAgICAgICAqIEFQ
SS90ZXN0cy90ZXN0YXBpLm1tOgorICAgICAgICAodGVzdE9iamVjdGl2ZUNBUElNYWluKToKKyAg
ICAgICAgKiBLZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5OgorICAgICAgICAoVHJpZS5wcmludEFz
Qyk6CisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CisgICAgICAgICogYXNz
ZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oOgorICAgICAgICAqIGFzc2VtYmxlci9Bc3NlbWJsZXJD
b21tb24uaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaDoKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAgICAgICAqIGFzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTTY0RS5oOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTXY3Lmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oOgor
ICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoKKyAgICAgICAgKiBhc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODYuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246
OmFic0RvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpuZWdh
dGVEb3VibGUpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oOgor
ICAgICAgICAqIGFzc2VtYmxlci9YODZBc3NlbWJsZXIuaDoKKyAgICAgICAgKiBiMy9CM0Jhbmsu
aDoKKyAgICAgICAgKiBiMy9CM0NoZWNrU3BlY2lhbC5oOgorICAgICAgICAqIGIzL0IzRHVwbGlj
YXRlVGFpbHMuY3BwOgorICAgICAgICAqIGIzL0IzRWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lv
bnMuY3BwOgorICAgICAgICAqIGIzL0IzRml4U1NBLmNwcDoKKyAgICAgICAgKiBiMy9CM0ZvbGRQ
YXRoQ29uc3RhbnRzLmNwcDoKKyAgICAgICAgKiBiMy9CM0luZmVyU3dpdGNoZXMuY3BwOgorICAg
ICAgICAqIGIzL0IzS2luZC5oOgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAg
ICAgICogYjMvQjNOYXRpdmVUcmFpdHMuaDoKKyAgICAgICAgKiBiMy9CM1JlZHVjZURvdWJsZVRv
RmxvYXQuY3BwOgorICAgICAgICAqIGIzL0IzUmVkdWNlTG9vcFN0cmVuZ3RoLmNwcDoKKyAgICAg
ICAgKiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcDoKKyAgICAgICAgKiBiMy9CM1ZhbHVlS2V5Lmg6
CisgICAgICAgICogYjMvYWlyL0FpckFsbG9jYXRlUmVnaXN0ZXJzQnlHcmFwaENvbG9yaW5nLmNw
cDoKKyAgICAgICAgKiBiMy9haXIvQWlyQWxsb2NhdGVTdGFja0J5R3JhcGhDb2xvcmluZy5jcHA6
CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAqIGIzL2Fpci9BaXJDQ2FsbFNw
ZWNpYWwuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyRW1pdFNodWZmbGUuY3BwOgorICAgICAgICAq
IGIzL2Fpci9BaXJGaXhPYnZpb3VzU3BpbGxzLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWlyRm9y
bVRhYmxlLmg6CisgICAgICAgICogYjMvYWlyL0Fpckxvd2VyQWZ0ZXJSZWdBbGxvYy5jcHA6Cisg
ICAgICAgICogYjMvYWlyL0FpclByaW50U3BlY2lhbC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJT
dGFja0FsbG9jYXRpb24uY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJUbXAuaDoKKyAgICAgICAg
KiBiMy90ZXN0YjNfNi5jcHA6CisgICAgICAgICh0ZXN0SW50ZXJwcmV0ZXIpOgorICAgICAgICAq
IGJ5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5rU3Rh
dHVzLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9DYWxsVmFyaWFudC5oOgorICAgICAgICAqIGJ5
dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVPcmlnaW4uaDoKKyAg
ICAgICAgKiBieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oOgorICAgICAgICAqIGJ5dGVjb2RlL0Rp
cmVjdEV2YWxDb2RlQ2FjaGUuaDoKKyAgICAgICAgKiBieXRlY29kZS9FeGVjdXRhYmxlVG9Db2Rl
QmxvY2tFZGdlLmg6CisgICAgICAgICogYnl0ZWNvZGUvR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZS5j
cHA6CisgICAgICAgICogYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuaDoKKyAgICAg
ICAgKiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5oOgorICAgICAgICAqIGJ5dGVj
b2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9Q
b2x5bW9ycGhpY0FjY2Vzcy5jcHA6CisgICAgICAgICogYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRp
b24uaDoKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oOgorICAgICAgICAqIGJ5
dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9Vbmxpbmtl
ZENvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OlVubGlua2VkQ29kZUJsb2NrOjp0eXBlUHJv
ZmlsZXJFeHByZXNzaW9uSW5mb0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKiBieXRlY29k
ZS9VbmxpbmtlZENvZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkRXZhbENv
ZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25Db2RlQmxvY2su
aDoKKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oOgorICAg
ICAgICAqIGJ5dGVjb2RlL1VubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jay5oOgorICAgICAg
ICAqIGJ5dGVjb2RlL1VubGlua2VkUHJvZ3JhbUNvZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVj
b2RlL1ZhbHVlUHJvZmlsZS5oOgorICAgICAgICAqIGJ5dGVjb2RlL1ZpcnR1YWxSZWdpc3Rlci5o
OgorICAgICAgICAqIGJ5dGVjb2RlL1dhdGNocG9pbnQuaDoKKyAgICAgICAgKiBieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTGFiZWwuaDoK
KyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6
VGhpc05vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL1JlZ2lzdGVy
SUQuaDoKKyAgICAgICAgKiBkZWJ1Z2dlci9CcmVha3BvaW50Lmg6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJQYXJzZURhdGEuY3BwOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyUHJp
bWl0aXZlcy5oOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyU2NvcGUuaDoKKyAgICAgICAg
KiBkZmcvREZHQWJzdHJhY3RIZWFwLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0VmFsdWUu
aDoKKyAgICAgICAgKiBkZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHA6CisgICAg
ICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKiBkZmcvREZHQ1NFUGhh
c2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdDb21tb24uaDoKKyAgICAgICAgKiBkZmcvREZHQ29t
cGlsYXRpb25LZXkuaDoKKyAgICAgICAgKiBkZmcvREZHRGVzaXJlZEdsb2JhbFByb3BlcnR5Lmg6
CisgICAgICAgICogZGZnL0RGR0VkZ2VEb21pbmF0ZXMuaDoKKyAgICAgICAgKiBkZmcvREZHRXBv
Y2guaDoKKyAgICAgICAgKiBkZmcvREZHRm9yQWxsS2lsbHMuaDoKKyAgICAgICAgKEpTQzo6REZH
Ojpmb3JBbGxLaWxsZWROb2Rlc0F0Tm9kZUluZGV4KToKKyAgICAgICAgKiBkZmcvREZHR3JhcGgu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjppc0xpdmVJbkJ5dGVjb2RlKToKKyAgICAg
ICAgKiBkZmcvREZHSGVhcExvY2F0aW9uLmg6CisgICAgICAgICogZGZnL0RGR0luUGxhY2VBYnN0
cmFjdFN0YXRlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhh
c2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdJbnRlZ2VyUmFuZ2VPcHRpbWl6YXRpb25QaGFzZS5j
cHA6CisgICAgICAgICogZGZnL0RGR0ludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuY3Bw
OgorICAgICAgICAqIGRmZy9ERkdMSUNNUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdMYXp5
Tm9kZS5oOgorICAgICAgICAqIGRmZy9ERkdNaW5pZmllZElELmg6CisgICAgICAgICogZGZnL0RG
R01vdkhpbnRSZW1vdmFsUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdOb2RlRmxvd1Byb2pl
Y3Rpb24uaDoKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZH
T2JqZWN0QWxsb2NhdGlvblNpbmtpbmdQaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR1BoYW50
b21JbnNlcnRpb25QaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR1Byb21vdGVkSGVhcExvY2F0
aW9uLmg6CisgICAgICAgICogZGZnL0RGR1Byb3BlcnR5VHlwZUtleS5oOgorICAgICAgICAqIGRm
Zy9ERkdQdXJlVmFsdWUuaDoKKyAgICAgICAgKiBkZmcvREZHUHV0U3RhY2tTaW5raW5nUGhhc2Uu
Y3BwOgorICAgICAgICAqIGRmZy9ERkdSZWdpc3RlckJhbmsuaDoKKyAgICAgICAgKiBkZmcvREZH
U1NBQ29udmVyc2lvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU1NBTG93ZXJpbmdQaGFz
ZS5jcHA6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURvdWJsZVJlcCk6CisgICAgICAgIChKU0M6
OkRGRzo6Y29tcGlsZUNsYW1wRG91YmxlVG9CeXRlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoUm91bmRpbmcpOgorICAgICAgICAoSlNDOjpERkc6OmNv
bXBpbGVBcml0aFBvd0ludGVnZXJGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVBcml0aFBvdyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmVtaXRCaW5hcnlTd2l0Y2hTdHJpbmdSZWN1cnNlKToKKyAgICAgICAgKiBkZmcvREZH
U3RhY2tMYXlvdXRQaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR1N0b3JlQmFycmllckluc2Vy
dGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5j
cHA6CisgICAgICAgICogZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaDoKKyAgICAgICAg
KiBkZmcvREZHVmFyYXJnc0ZvcndhcmRpbmdQaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR1Zh
cmlhYmxlRXZlbnRTdHJlYW0uY3BwOgorICAgICAgICAoSlNDOjpERkc6OlZhcmlhYmxlRXZlbnRT
dHJlYW06OnJlY29uc3RydWN0IGNvbnN0KToKKyAgICAgICAgKiBkZmcvREZHV2F0Y2hwb2ludENv
bGxlY3Rpb25QaGFzZS5jcHA6CisgICAgICAgICogZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNv
ZGUuaDoKKyAgICAgICAgKiBmdGwvRlRMTG9jYXRpb24uaDoKKyAgICAgICAgKiBmdGwvRlRMTG93
ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29t
cGlsZUFyaXRoUmFuZG9tKToKKyAgICAgICAgKiBmdGwvRlRMU2xvd1BhdGhDYWxsLmNwcDoKKyAg
ICAgICAgKiBmdGwvRlRMU2xvd1BhdGhDYWxsS2V5Lmg6CisgICAgICAgICogaGVhcC9DZWxsQ29u
dGFpbmVyLmg6CisgICAgICAgICogaGVhcC9DZWxsU3RhdGUuaDoKKyAgICAgICAgKiBoZWFwL0Nv
bnNlcnZhdGl2ZVJvb3RzLmg6CisgICAgICAgICogaGVhcC9HQ1NlZ21lbnRlZEFycmF5Lmg6Cisg
ICAgICAgICogaGVhcC9IYW5kbGVCbG9jay5oOgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6Cisg
ICAgICAgIChKU0M6OkhlYXA6OnVwZGF0ZUFsbG9jYXRpb25MaW1pdHMpOgorICAgICAgICAqIGhl
YXAvSGVhcC5oOgorICAgICAgICAqIGhlYXAvSGVhcFNuYXBzaG90Lmg6CisgICAgICAgICogaGVh
cC9IZWFwVXRpbC5oOgorICAgICAgICAoSlNDOjpIZWFwVXRpbDo6ZmluZEdDT2JqZWN0UG9pbnRl
cnNGb3JNYXJraW5nKToKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHA6Cisg
ICAgICAgICogaGVhcC9MYXJnZUFsbG9jYXRpb24uaDoKKyAgICAgICAgKiBoZWFwL01hcmtlZEJs
b2NrLmNwcDoKKyAgICAgICAgKiBoZWFwL1N0cm9uZy5oOgorICAgICAgICAqIGhlYXAvVmlzaXRS
YWNlS2V5Lmg6CisgICAgICAgICogaGVhcC9XZWFrLmg6CisgICAgICAgICogaGVhcC9XZWFrQmxv
Y2suaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmg6CisgICAgICAgICogaW5zcGVjdG9y
L0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3Bl
Y3RvclJ1bnRpbWVBZ2VudDo6Z2V0UnVudGltZVR5cGVzRm9yVmFyaWFibGVzQXRPZmZzZXRzKToK
KyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9wcm90b2Nv
bF90eXBlc19oZWFkZXIucHk6CisgICAgICAgIChDcHBQcm90b2NvbFR5cGVzSGVhZGVyR2VuZXJh
dG9yLl9nZW5lcmF0ZV92ZXJzaW9ucyk6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvdGVz
dHMvZ2VuZXJpYy9leHBlY3RlZC92ZXJzaW9uLmpzb24tcmVzdWx0OgorICAgICAgICAqIGludGVy
cHJldGVyL0ludGVycHJldGVyLmg6CisgICAgICAgICogaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tl
bi5jcHA6CisgICAgICAgICogaml0L0JpbmFyeVN3aXRjaC5jcHA6CisgICAgICAgICogaml0L0Nh
bGxGcmFtZVNodWZmbGVyLmg6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaDoK
KyAgICAgICAgKiBqaXQvRlBSSW5mby5oOgorICAgICAgICAqIGppdC9HUFJJbmZvLmg6CisgICAg
ICAgICogaml0L0lDU3RhdHMuaDoKKyAgICAgICAgKiBqaXQvSklUVGh1bmtzLmg6CisgICAgICAg
ICogaml0L1JlZy5oOgorICAgICAgICAqIGppdC9SZWdpc3RlclNldC5oOgorICAgICAgICAqIGpp
dC9UZW1wUmVnaXN0ZXJTZXQuaDoKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAqIHBhcnNl
ci9BU1RCdWlsZGVyLmg6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgICogcGFy
c2VyL1NvdXJjZUNvZGVLZXkuaDoKKyAgICAgICAgKiBwYXJzZXIvU3ludGF4Q2hlY2tlci5oOgor
ICAgICAgICAqIHBhcnNlci9WYXJpYWJsZUVudmlyb25tZW50Lmg6CisgICAgICAgICogcHJvZmls
ZXIvUHJvZmlsZXJPcmlnaW4uaDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlck9yaWdpblN0
YWNrLmg6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJVSUQuaDoKKyAgICAgICAgKiBydW50
aW1lL0Fic3RyYWN0TW9kdWxlUmVjb3JkLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5QnVm
ZmVyTmV1dGVyaW5nV2F0Y2hwb2ludFNldC5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlDb25z
dHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlDb252ZW50aW9ucy5oOgorICAgICAg
ICAqIHJ1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUv
QXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpzZXRMZW5ndGgpOgorICAgICAgICAq
IHJ1bnRpbWUvQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVu
dGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGlt
ZS9Bc3luY0dlbmVyYXRvclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvQXN5bmNJdGVy
YXRvclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvQXRvbWljc09iamVjdC5jcHA6Cisg
ICAgICAgICogcnVudGltZS9CaWdJbnRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUv
QmlnSW50UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmg6
CisgICAgICAgICogcnVudGltZS9DbG9uZWRBcmd1bWVudHMuaDoKKyAgICAgICAgKiBydW50aW1l
L0NvZGVDYWNoZS5oOgorICAgICAgICAqIHJ1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5oOgor
ICAgICAgICAqIHJ1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmg6CisgICAgICAgICogcnVudGlt
ZS9EYXRlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUuaDoK
KyAgICAgICAgKiBydW50aW1lL0RlZmluZVByb3BlcnR5QXR0cmlidXRlcy5oOgorICAgICAgICAq
IHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0V2YWxFeGVjdXRh
YmxlLmg6CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb24uaDoKKyAgICAgICAgKiBydW50aW1l
L0V4Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjppbnZhbGlkUGFyYW1ldGVySW5T
b3VyY2VBcHBlbmRlcik6CisgICAgICAgIChKU0M6OmludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9m
U291cmNlQXBwZW5kZXIpOgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oOgor
ICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZUJhc2UuaDoKKyAgICAgICAgKiBydW50aW1lL0Z1
bmN0aW9uRXhlY3V0YWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5o
OgorICAgICAgICAqIHJ1bnRpbWUvR2VuZXJhdG9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVu
dGltZS9HZW5lcmljQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9HZW5lcmljT2Zmc2V0
Lmg6CisgICAgICAgICogcnVudGltZS9HZXRQdXRJbmZvLmg6CisgICAgICAgICogcnVudGltZS9H
ZXR0ZXJTZXR0ZXIuaDoKKyAgICAgICAgKiBydW50aW1lL0dsb2JhbEV4ZWN1dGFibGUuaDoKKyAg
ICAgICAgKiBydW50aW1lL0lkZW50aWZpZXIuaDoKKyAgICAgICAgKiBydW50aW1lL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbk9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5j
dGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKiBydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0lu
dGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE51bWJl
ckZvcm1hdENvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0
UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0Lmg6CisgICAgICAgICog
cnVudGltZS9JbnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUv
SW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9JdGVyYXRvclBy
b3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6
OkpTQXJyYXk6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWRSZXN0cmljdGVkKToKKyAgICAgICAgKiBy
dW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXIuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3Lmg6CisgICAgICAgICogcnVudGltZS9K
U0JpZ0ludC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDZWxsLmg6CisgICAgICAgICogcnVudGltZS9KU0N1c3RvbUdldHRlclNldHRlckZ1
bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0RhdGFWaWV3Lmg6CisgICAgICAgICogcnVu
dGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9KU0Rlc3RydWN0
aWJsZU9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNGaXhlZEFycmF5Lmg6CisgICAgICAg
ICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFs
T2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU0ltbXV0YWJsZUJ1dHRlcmZseS5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNJbnRlcm5hbFByb21pc2VQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTTGV4aWNh
bEVudmlyb25tZW50Lmg6CisgICAgICAgICogcnVudGltZS9KU01vZHVsZUVudmlyb25tZW50Lmg6
CisgICAgICAgICogcnVudGltZS9KU01vZHVsZUxvYWRlci5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTTm9uRGVzdHJ1
Y3RpYmxlUHJveHkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVu
dGltZS9KU1Byb21pc2VEZWZlcnJlZC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlUHJv
dG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTUHJveHkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU2NvcGUu
aDoKKyAgICAgICAgKiBydW50aW1lL0pTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJzLmg6CisgICAgICAg
ICogcnVudGltZS9KU1NjcmlwdEZldGNoZXIuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU2VnbWVu
dGVkVmFyaWFibGVPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU291cmNlQ29kZS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJp
bmcuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuaDoKKyAgICAgICAg
KiBydW50aW1lL0pTVGVtcGxhdGVPYmplY3REZXNjcmlwdG9yLmg6CisgICAgICAgICogcnVudGlt
ZS9KU1R5cGVJbmZvLmg6CisgICAgICAgICogcnVudGltZS9NYXBQcm90b3R5cGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL01pbmltdW1SZXNlcnZlZFpvbmVTaXplLmg6CisgICAgICAgICogcnVudGlt
ZS9Nb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXhl
Y3V0YWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRnVuY3Rpb24uaDoKKyAgICAgICAg
KiBydW50aW1lL05hdGl2ZVN0ZEZ1bmN0aW9uQ2VsbC5oOgorICAgICAgICAqIHJ1bnRpbWUvTnVt
YmVyQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL051bWJlclByb3RvdHlwZS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1l
L09iamVjdFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvUHJvZ3JhbUV4ZWN1dGFibGUu
aDoKKyAgICAgICAgKiBydW50aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmg6CisgICAgICAgICogcnVudGltZS9Qcm9w
ZXJ0eU5hbWVBcnJheS5oOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eU5hbWVBcnJheTo6YWRkKToK
KyAgICAgICAgKiBydW50aW1lL1Byb3RvdHlwZUtleS5oOgorICAgICAgICAqIHJ1bnRpbWUvUHJv
eHlDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlPYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpQcm94eU9iamVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMpOgorICAg
ICAgICAqIHJ1bnRpbWUvUHJveHlSZXZva2UuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZmxlY3RP
YmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cC5oOgorICAgICAgICAqIHJ1bnRpbWUv
UmVnRXhwQ2FjaGUuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmg6Cisg
ICAgICAgICogcnVudGltZS9SZWdFeHBLZXkuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9i
amVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmg6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5jcHA6CisgICAgICAgICogcnVudGltZS9TY29wZWRBcmd1bWVu
dHNUYWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvU2V0UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9TbWFsbFN0cmlu
Z3MuaDoKKyAgICAgICAgKiBydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuaDoKKyAgICAgICAg
KiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdJ
dGVyYXRvclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0Lmg6Cisg
ICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1N0
cnVjdHVyZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaDoKKyAgICAgICAg
KiBydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmg6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1
cmVUcmFuc2l0aW9uVGFibGUuaDoKKyAgICAgICAgKiBydW50aW1lL1N5bWJvbC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1N5bWJv
bFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sVGFibGUuaDoKKyAgICAgICAg
KiBydW50aW1lL1RlbXBsYXRlT2JqZWN0RGVzY3JpcHRvci5oOgorICAgICAgICAqIHJ1bnRpbWUv
VHlwZVByb2ZpbGVyLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1R5cGVQcm9maWxlci5oOgorICAg
ICAgICAqIHJ1bnRpbWUvVHlwZVByb2ZpbGVyTG9nLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1Zh
ck9mZnNldC5oOgorICAgICAgICAqIHRlc3RSZWdFeHAuY3BwOgorICAgICAgICAqIHRvb2xzL0hl
YXBWZXJpZmllci5jcHA6CisgICAgICAgIChKU0M6OkhlYXBWZXJpZmllcjo6Y2hlY2tJZlJlY29y
ZGVkKToKKyAgICAgICAgKiB0b29scy9KU0RvbGxhclZNLmNwcDoKKyAgICAgICAgKiB3YXNtL1dh
c21CM0lSR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKiB3YXNtL1dhc21CQlFQbGFuLmNwcDoKKyAg
ICAgICAgKiB3YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwOgorICAgICAgICAqIHdhc20v
V2FzbUZ1bmN0aW9uUGFyc2VyLmg6CisgICAgICAgICogd2FzbS9XYXNtT01HRm9yT1NSRW50cnlQ
bGFuLmNwcDoKKyAgICAgICAgKiB3YXNtL1dhc21PTUdQbGFuLmNwcDoKKyAgICAgICAgKiB3YXNt
L1dhc21QbGFuLmNwcDoKKyAgICAgICAgKiB3YXNtL1dhc21TaWduYXR1cmUuY3BwOgorICAgICAg
ICAqIHdhc20vV2FzbVNpZ25hdHVyZS5oOgorICAgICAgICAqIHdhc20vV2FzbVdvcmtsaXN0LmNw
cDoKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHkuaDoKKyAgICAgICAgKiB3YXNtL2pz
L0pTV2ViQXNzZW1ibHlDb2RlQmxvY2suaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yUHJvdG90eXBlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUZ1
bmN0aW9uLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0
b3IuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuaDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yUHJvdG90eXBlLmg6CisgICAgICAg
ICogd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmg6CisgICAgICAgICogd2Fz
bS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5oOgorICAgICAgICAqIHdhc20vanMvV2Vi
QXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1i
bHlNb2R1bGVQcm90b3R5cGUuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yUHJvdG90eXBlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29u
c3RydWN0b3IuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUu
aDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5VG9KU0NhbGxlZS5oOgorICAgICAgICAq
IHlhcnIvWWFyci5oOgorICAgICAgICAqIHlhcnIvWWFyclBhcnNlci5oOgorICAgICAgICAqIHlh
cnIvZ2VuZXJhdGVZYXJyQ2Fub25pY2FsaXplVW5pY29kZToKKwogMjAxOS0wOS0xNyAgWXVzdWtl
IFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIENoZWNrQXJyYXkr
Tm9uQXJyYXkgaXMgbm90IGZpbHRlcmluZyBvdXQgQXJyYXkgaW4gQUkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9LZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9LZXl3b3JkTG9va3VwR2VuZXJhdG9yLnB5CShyZXZpc2lvbiAy
NDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvS2V5d29yZExvb2t1cEdlbmVyYXRvci5w
eQkod29ya2luZyBjb3B5KQpAQCAtMTg3LDcgKzE4Nyw3IEBAIGNsYXNzIFRyaWU6CiAgICAgICAg
IHByaW50KCJzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGlzSWRlbnRQYXJ0SW5jbHVkaW5nRXNj
YXBlKGNvbnN0IExDaGFyKiBjb2RlLCBjb25zdCBMQ2hhciogY29kZUVuZCk7IikKICAgICAgICAg
cHJpbnQoInN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgaXNJZGVudFBhcnRJbmNsdWRpbmdFc2Nh
cGUoY29uc3QgVUNoYXIqIGNvZGUsIGNvbnN0IFVDaGFyKiBjb2RlRW5kKTsiKQogICAgICAgICAj
IG1heCBsZW5ndGggKyAxIHNvIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55IGJvdW5kcyBjaGVja2lu
ZyBhdCBhbGwKLSAgICAgICAgcHJpbnQoInN0YXRpYyBjb25zdCBpbnQgbWF4VG9rZW5MZW5ndGgg
PSAlZDsiICUgKHNlbGYubWF4TGVuZ3RoKCkgKyAxKSkKKyAgICAgICAgcHJpbnQoInN0YXRpYyBj
b25zdGV4cHIgaW50IG1heFRva2VuTGVuZ3RoID0gJWQ7IiAlIChzZWxmLm1heExlbmd0aCgpICsg
MSkpCiAgICAgICAgIHByaW50KCIiKQogICAgICAgICBwcmludCgidGVtcGxhdGUgPD4iKQogICAg
ICAgICBwcmludCgidGVtcGxhdGUgPGJvb2wgc2hvdWxkQ3JlYXRlSWRlbnRpZmllcj4gQUxXQVlT
X0lOTElORSBKU1Rva2VuVHlwZSBMZXhlcjxVQ2hhcj46OnBhcnNlS2V5d29yZChKU1Rva2VuRGF0
YSogZGF0YSkiKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTYsNyAr
MTk2LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBC
YXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSlNDOjpNYXNxdWVyYWRlc0FzVW5kZWZpbmVkOworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEpTQzo6TWFzcXVlcmFkZXNBc1VuZGVmaW5lZDsKIAogICAgIHN0YXRpYyBNYXNxdWVyYWRlciog
Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CkBAIC00
OTMsNyArNDkzLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0KIAot
ICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOwogCiAgICAgREVDTEFS
RV9JTkZPOwogICAgIHN0YXRpYyBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBzX2dsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdF
eHAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNw
cAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdo
dCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0xMTcsNyArMTE3LDcgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9J
TkZPOwogCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdG9yID0gZmFsc2U7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3RvciA9IGZhbHNlOwogCiAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVZhbHVlV3Jh
cHBlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElWYWx1
ZVdyYXBwZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0FQSVZhbHVlV3JhcHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIGNs
YXNzIEpTQVBJVmFsdWVXcmFwcGVyIGZpbmFsIDogcHVibGljIEoKICAgICBmcmllbmQgSlNWYWx1
ZSBqc0FQSVZhbHVlV3JhcHBlcihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKIHB1YmxpYzoKICAgICB0
eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgSlNWYWx1ZSB2YWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdmFsdWUuZ2V0KCk7IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU0Nh
bGxiYWNrQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3Qgewog
cHVibGljOgogICAgIHR5cGVkZWYgSlNEZXN0cnVjdGlibGVPYmplY3QgQmFzZTsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2U7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSW1wbGVtZW50c0RlZmF1bHRIYXNJ
bnN0YW5jZTsKIAogICAgIHN0YXRpYyBKU0NhbGxiYWNrQ29uc3RydWN0b3IqIGNyZWF0ZShFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBKU0NsYXNzUmVmIGNsYXNzUmVmLCBKU09iamVjdENhbGxBc0NvbnN0cnVjdG9yQ2Fs
bGJhY2sgY2FsbGJhY2spIAogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja09iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja09iamVjdC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDcg
KzEzMiw3IEBAIHByb3RlY3RlZDoKIAogcHVibGljOgogICAgIHR5cGVkZWYgUGFyZW50IEJhc2U7
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBQcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcgfCBPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVu
Z3RoSXNOb3RaZXJvIHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzR2V0UHJvcGVy
dHlOYW1lcyB8IE92ZXJyaWRlc0dldENhbGxEYXRhOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFByb2hpYml0c1By
b3BlcnR5Q2FjaGluZyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVyY2VwdHNH
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBJbXBsZW1l
bnRzSGFzSW5zdGFuY2UgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgT3ZlcnJpZGVzR2V0
Q2FsbERhdGE7CiAgICAgc3RhdGljX2Fzc2VydCghKFN0cnVjdHVyZUZsYWdzICYgSW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZSksICJ1c2luZyBjdXN0b21IYXNJbnN0YW5jZSIpOwogCiAgICAg
fkpTQ2FsbGJhY2tPYmplY3QoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
b250ZXh0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q29udGV4dFJlZi5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDb250ZXh0UmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01
Niw3ICs1Niw3IEBACiAjaWYgT1MoREFSV0lOKQogI2luY2x1ZGUgPG1hY2gtby9keWxkLmg+CiAK
LXN0YXRpYyBjb25zdCBpbnQzMl90IHdlYmtpdEZpcnN0VmVyc2lvbldpdGhDb25jdXJyZW50R2xv
YmFsQ29udGV4dHMgPSAweDIxMDA1MDA7IC8vIDUyOC41LjAKK3N0YXRpYyBjb25zdGV4cHIgaW50
MzJfdCB3ZWJraXRGaXJzdFZlcnNpb25XaXRoQ29uY3VycmVudEdsb2JhbENvbnRleHRzID0gMHgy
MTAwNTAwOyAvLyA1MjguNS4wCiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSwg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTQ2LDExICs0NiwxMSBAQAogCiAjaWYgUExBVEZPUk0oQVBQTEVU
VikKICNlbHNlCi1zdGF0aWMgY29uc3QgaW50MzJfdCBmaXJzdEphdmFTY3JpcHRDb3JlVmVyc2lv
bldpdGhJbml0Q29uc3RydWN0b3JTdXBwb3J0ID0gMHgyMUEwNDAwOyAvLyA1MzguNC4wCitzdGF0
aWMgY29uc3RleHByIGludDMyX3QgZmlyc3RKYXZhU2NyaXB0Q29yZVZlcnNpb25XaXRoSW5pdENv
bnN0cnVjdG9yU3VwcG9ydCA9IDB4MjFBMDQwMDsgLy8gNTM4LjQuMAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi1zdGF0aWMgY29uc3QgdWludDMyX3QgZmlyc3RTREtWZXJzaW9uV2l0aEluaXRD
b25zdHJ1Y3RvclN1cHBvcnQgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzA7CitzdGF0aWMgY29uc3Rl
eHByIHVpbnQzMl90IGZpcnN0U0RLVmVyc2lvbldpdGhJbml0Q29uc3RydWN0b3JTdXBwb3J0ID0g
RFlMRF9JT1NfVkVSU0lPTl8xMF8wOwogI2VsaWYgUExBVEZPUk0oTUFDKQotc3RhdGljIGNvbnN0
IHVpbnQzMl90IGZpcnN0U0RLVmVyc2lvbldpdGhJbml0Q29uc3RydWN0b3JTdXBwb3J0ID0gMHhB
MEEwMDsgLy8gT1NYIDEwLjEwLjAKK3N0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgZmlyc3RTREtW
ZXJzaW9uV2l0aEluaXRDb25zdHJ1Y3RvclN1cHBvcnQgPSAweEEwQTAwOyAvLyBPU1ggMTAuMTAu
MAogI2VuZGlmCiAjZW5kaWYKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNwcAkocmV2aXNpb24gMjQ5OTc2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTQwLDExICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIHNpemVf
dCBudW1CaXRzKCkgY29uc3QgeyByZXR1cm4gd29yZHMgKiB3b3JkU2l6ZTsgfQogCiBwcml2YXRl
OgotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgU2l6ZSA9IDQwOTYqMTA7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBzaXplX3QgU2l6ZSA9IDQwOTYqMTA7CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgd29yZFNpemUgPSBzaXplb2YodWludDhfdCkgKiA4OwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCB3b3JkcyA9IChTaXplICsgd29yZFNpemUgLSAxKSAvIHdvcmRTaXplOwotICAgIHN0YXRp
YyBjb25zdCB1aW50OF90IG9uZSA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB3
b3JkU2l6ZSA9IHNpemVvZih1aW50OF90KSAqIDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCB3b3JkcyA9IChTaXplICsgd29yZFNpemUgLSAxKSAvIHdvcmRTaXplOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdWludDhfdCBvbmUgPSAxOwogCiAgICAgdWludDhfdCBiaXRzW3dvcmRzXTsK
IH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1R5cGVkQXJyYXlDVGVz
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9UeXBl
ZEFycmF5Q1Rlc3QuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL3Rlc3RzL1R5cGVkQXJyYXlDVGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsNyArNDAs
NyBAQCBzdGF0aWMgdm9pZCBmcmVlUHRyKHZvaWQqIHB0ciwgdm9pZCopCiAgICAgZnJlZShwdHIp
OwogfQogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtTGVuZ3RocyA9IDM7CitzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIG51bUxlbmd0aHMgPSAzOwogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQg
bGVuZ3Roc1tudW1MZW5ndGhzXSA9CiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL3Rlc3RhcGkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy90ZXN0YXBpLm1tCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0JKHdvcmtpbmcgY29weSkKQEAgLTEzNDAsNyArMTM0
MCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RPYmplY3RpdmVDQVBJTWFpbigpCiAgICAgfQogCiAgICAg
QGF1dG9yZWxlYXNlcG9vbCB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjb3VudCA9
IDEwMDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBjb3VudCA9IDEwMDsKICAg
ICAgICAgTlNNdXRhYmxlQXJyYXkgKmFycmF5ID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENh
cGFjaXR5OmNvdW50XTsKICAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tKU0NvbnRleHQg
YWxsb2NdIGluaXRdOwogICAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDkgKzEwMyw5IEBAIGNsYXNzIEFSTVRodW1iSW1t
ZWRpYXRlIHsKICAgICBmcmllbmQgY2xhc3MgQVJNdjdBc3NlbWJsZXI7CiAKICAgICB0eXBlZGVm
IHVpbnQ4X3QgVGh1bWJJbW1lZGlhdGVUeXBlOwotICAgIHN0YXRpYyBjb25zdCBUaHVtYkltbWVk
aWF0ZVR5cGUgVHlwZUludmFsaWQgPSAwOwotICAgIHN0YXRpYyBjb25zdCBUaHVtYkltbWVkaWF0
ZVR5cGUgVHlwZUVuY29kZWQgPSAxOwotICAgIHN0YXRpYyBjb25zdCBUaHVtYkltbWVkaWF0ZVR5
cGUgVHlwZVVJbnQxNiA9IDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBUaHVtYkltbWVkaWF0ZVR5
cGUgVHlwZUludmFsaWQgPSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgVGh1bWJJbW1lZGlhdGVU
eXBlIFR5cGVFbmNvZGVkID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIFRodW1iSW1tZWRpYXRl
VHlwZSBUeXBlVUludDE2ID0gMjsKIAogICAgIHR5cGVkZWYgdW5pb24gewogICAgICAgICBpbnQx
Nl90IGFzSW50OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJs
ZXJCdWZmZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L0Fzc2VtYmxlckJ1ZmZlci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiwgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTY4LDcgKzY4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBBc3NlbWJsZXJE
YXRhIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXNzZW1ibGVyRGF0YSk7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBzaXplX3QgSW5saW5lQ2FwYWNpdHkgPSAxMjg7CisgICAgICAgIHN0
YXRpYyBjb25zdGV4cHIgc2l6ZV90IElubGluZUNhcGFjaXR5ID0gMTI4OwogICAgIHB1YmxpYzoK
ICAgICAgICAgQXNzZW1ibGVyRGF0YSgpCiAgICAgICAgICAgICA6IG1fYnVmZmVyKG1faW5saW5l
QnVmZmVyKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJD
b21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fz
c2VtYmxlckNvbW1vbi5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0Fzc2VtYmxlckNvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI4Miw3ICsyODIsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gaW1tTiA8PCAxMiB8IGlt
bXIgPDwgNiB8IGltbXM7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0IGludCBJbnZhbGlkTG9n
aWNhbEltbWVkaWF0ZSA9IC0xOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IEludmFsaWRMb2dp
Y2FsSW1tZWRpYXRlID0gLTE7CiAKICAgICBpbnQgbV92YWx1ZTsKIH07CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwMyw3ICs1MDMsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZXRGbG9hdChGUFJlZ2lzdGVySUQpIHsgcmV0KCk7IH0KICAgICB2b2lkIHJldERvdWJsZShG
UFJlZ2lzdGVySUQpIHsgcmV0KCk7IH0KIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBCbGlu
ZGluZ01vZHVsdXMgPSA2NDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEJsaW5kaW5n
TW9kdWx1cyA9IDY0OwogICAgIGJvb2wgc2hvdWxkQ29uc2lkZXJCbGluZGluZygpCiAgICAgewog
ICAgICAgICByZXR1cm4gIShyYW5kb20oKSAmIChCbGluZGluZ01vZHVsdXMgLSAxKSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjQuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw4ICsz
OCw4IEBAIHVzaW5nIEFzc2VtYmxlciA9IFRBUkdFVF9BU1NFTUJMRVI7CiAKIGNsYXNzIE1hY3Jv
QXNzZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtR1BScyA9IDMyOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1GUFJzID0gMzI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBudW1HUFJzID0gMzI7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBu
dW1GUFJzID0gMzI7CiAgICAgCiAgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGRhdGFU
ZW1wUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6aXAwOwogICAgIHN0YXRpYyBjb25zdGV4cHIg
UmVnaXN0ZXJJRCBtZW1vcnlUZW1wUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6aXAxOwpAQCAt
NTEsMTEgKzUxLDExIEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBzdGF0aWMg
Y29uc3QgQVJNNjRSZWdpc3RlcnM6OkZQUmVnaXN0ZXJJRCBmcFRlbXBSZWdpc3RlciA9IEFSTTY0
UmVnaXN0ZXJzOjpxMzE7Ci0gICAgc3RhdGljIGNvbnN0IEFzc2VtYmxlcjo6U2V0RmxhZ3MgUyA9
IEFzc2VtYmxlcjo6UzsKLSAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBtYXNrSGFsZldvcmQwID0g
MHhmZmZmbDsKLSAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBtYXNrSGFsZldvcmQxID0gMHhmZmZm
MDAwMGw7Ci0gICAgc3RhdGljIGNvbnN0IGludDY0X3QgbWFza1VwcGVyV29yZCA9IDB4ZmZmZmZm
ZmYwMDAwMDAwMGw7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBUk02NFJlZ2lzdGVyczo6RlBSZWdp
c3RlcklEIGZwVGVtcFJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OnEzMTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIEFzc2VtYmxlcjo6U2V0RmxhZ3MgUyA9IEFzc2VtYmxlcjo6UzsKKyAgICBzdGF0
aWMgY29uc3RleHByIGludDY0X3QgbWFza0hhbGZXb3JkMCA9IDB4ZmZmZmw7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBpbnQ2NF90IG1hc2tIYWxmV29yZDEgPSAweGZmZmYwMDAwbDsKKyAgICBzdGF0
aWMgY29uc3RleHByIGludDY0X3QgbWFza1VwcGVyV29yZCA9IDB4ZmZmZmZmZmYwMDAwMDAwMGw7
CiAKICAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBJTlNUUlVDVElPTl9TSVpFID0gNDsKIApA
QCAtNzUsOCArNzUsOCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBBc3NlbWJsZXI6Okp1bXBMaW5r
VHlwZSBKdW1wTGlua1R5cGU7CiAgICAgdHlwZWRlZiBBc3NlbWJsZXI6OkNvbmRpdGlvbiBDb25k
aXRpb247CiAKLSAgICBzdGF0aWMgY29uc3QgQXNzZW1ibGVyOjpDb25kaXRpb24gRGVmYXVsdENv
bmRpdGlvbiA9IEFzc2VtYmxlcjo6Q29uZGl0aW9uSW52YWxpZDsKLSAgICBzdGF0aWMgY29uc3Qg
QXNzZW1ibGVyOjpKdW1wVHlwZSBEZWZhdWx0SnVtcCA9IEFzc2VtYmxlcjo6SnVtcE5vQ29uZGl0
aW9uRml4ZWRTaXplOworICAgIHN0YXRpYyBjb25zdGV4cHIgQXNzZW1ibGVyOjpDb25kaXRpb24g
RGVmYXVsdENvbmRpdGlvbiA9IEFzc2VtYmxlcjo6Q29uZGl0aW9uSW52YWxpZDsKKyAgICBzdGF0
aWMgY29uc3RleHByIEFzc2VtYmxlcjo6SnVtcFR5cGUgRGVmYXVsdEp1bXAgPSBBc3NlbWJsZXI6
Okp1bXBOb0NvbmRpdGlvbkZpeGVkU2l6ZTsKIAogICAgIFZlY3RvcjxMaW5rUmVjb3JkLCAwLCBV
bnNhZmVWZWN0b3JPdmVyZmxvdz4mIGp1bXBzVG9MaW5rKCkgeyByZXR1cm4gbV9hc3NlbWJsZXIu
anVtcHNUb0xpbmsoKTsgfQogICAgIHN0YXRpYyBib29sIGNhbkNvbXBhY3QoSnVtcFR5cGUganVt
cFR5cGUpIHsgcmV0dXJuIEFzc2VtYmxlcjo6Y2FuQ29tcGFjdChqdW1wVHlwZSk7IH0KQEAgLTg2
LDcgKzg2LDcgQEAgcHVibGljOgogICAgIHRlbXBsYXRlIDxBc3NlbWJsZXI6OkNvcHlGdW5jdGlv
biBjb3B5PgogICAgIHN0YXRpYyB2b2lkIGxpbmsoTGlua1JlY29yZCYgcmVjb3JkLCB1aW50OF90
KiBmcm9tLCBjb25zdCB1aW50OF90KiBmcm9tSW5zdHJ1Y3Rpb24sIHVpbnQ4X3QqIHRvKSB7IHJl
dHVybiBBc3NlbWJsZXI6Omxpbms8Y29weT4ocmVjb3JkLCBmcm9tLCBmcm9tSW5zdHJ1Y3Rpb24s
IHRvKTsgfQogCi0gICAgc3RhdGljIGNvbnN0IFNjYWxlIFNjYWxlUHRyID0gVGltZXNFaWdodDsK
KyAgICBzdGF0aWMgY29uc3RleHByIFNjYWxlIFNjYWxlUHRyID0gVGltZXNFaWdodDsKIAogICAg
IHN0YXRpYyBib29sIGlzQ29tcGFjdFB0ckFsaWduZWRBZGRyZXNzT2Zmc2V0KHB0cmRpZmZfdCB2
YWx1ZSkKICAgICB7CkBAIC0xMzcsOSArMTM3LDkgQEAgcHVibGljOgogICAgICAgICBEb3VibGVM
ZXNzVGhhbk9yRXF1YWxPclVub3JkZXJlZCA9IEFzc2VtYmxlcjo6Q29uZGl0aW9uTEUsCiAgICAg
fTsKIAotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHN0YWNrUG9pbnRlclJlZ2lzdGVyID0g
QVJNNjRSZWdpc3RlcnM6OnNwOwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGZyYW1lUG9p
bnRlclJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OmZwOwotICAgIHN0YXRpYyBjb25zdCBSZWdp
c3RlcklEIGxpbmtSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjpscjsKKyAgICBzdGF0aWMgY29u
c3RleHByIFJlZ2lzdGVySUQgc3RhY2tQb2ludGVyUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6
c3A7CisgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGZyYW1lUG9pbnRlclJlZ2lzdGVy
ID0gQVJNNjRSZWdpc3RlcnM6OmZwOworICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBs
aW5rUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6bHI7CiAKICAgICAvLyBGSVhNRTogR2V0IHJl
YXNvbmFibGUgaW1wbGVtZW50YXRpb25zIGZvciB0aGVzZQogICAgIHN0YXRpYyBib29sIHNob3Vs
ZEJsaW5kRm9yU3BlY2lmaWNBcmNoKHVpbnQzMl90IHZhbHVlKSB7IHJldHVybiB2YWx1ZSA+PSAw
eDAwZmZmZmZmOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNNjRFLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0RS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjRFLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVy
LnhwYWNkKHRhcmdldCk7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgSW52
YWxpZEdQUiAgPSBzdGF0aWNfY2FzdDxSZWdpc3RlcklEPigtMSk7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBSZWdpc3RlcklEIEludmFsaWRHUFIgID0gc3RhdGljX2Nhc3Q8UmVnaXN0ZXJJRD4oLTEp
OwogCiAgICAgZW51bSBjbGFzcyBDYWxsU2lnbmF0dXJlVHlwZSB7CiAgICAgICAgIENGdW5jdGlv
bkNhbGwsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNdjcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNdjcuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNp
dHkgb2YgU3plZ2VkCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zNiwxNSArMzYsMTUgQEAgbmFtZXNw
YWNlIEpTQyB7CiB1c2luZyBBc3NlbWJsZXIgPSBUQVJHRVRfQVNTRU1CTEVSOwogCiBjbGFzcyBN
YWNyb0Fzc2VtYmxlckFSTXY3IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1i
bGVyPiB7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgZGF0YVRlbXBSZWdpc3RlciA9IEFS
TVJlZ2lzdGVyczo6aXA7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgYWRkcmVzc1RlbXBS
ZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjY7CisgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3Rl
cklEIGRhdGFUZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OmlwOworICAgIHN0YXRpYyBjb25z
dGV4cHIgUmVnaXN0ZXJJRCBhZGRyZXNzVGVtcFJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyNjsK
IAotICAgIHN0YXRpYyBjb25zdCBBUk1SZWdpc3RlcnM6OkZQRG91YmxlUmVnaXN0ZXJJRCBmcFRl
bXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6ZDc7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBUk1S
ZWdpc3RlcnM6OkZQRG91YmxlUmVnaXN0ZXJJRCBmcFRlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVy
czo6ZDc7CiAgICAgaW5saW5lIEFSTVJlZ2lzdGVyczo6RlBTaW5nbGVSZWdpc3RlcklEIGZwVGVt
cFJlZ2lzdGVyQXNTaW5nbGUoKSB7IHJldHVybiBBUk1SZWdpc3RlcnM6OmFzU2luZ2xlKGZwVGVt
cFJlZ2lzdGVyKTsgfQogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUdQ
UnMgPSAxNjsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtRlBScyA9IDE2OworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtR1BScyA9IDE2OworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbnVtRlBScyA9IDE2OwogICAgIAogICAgIE1hY3JvQXNzZW1ibGVyQVJNdjco
KQogICAgICAgICA6IG1fbWFrZUp1bXBQYXRjaGFibGUoZmFsc2UpCkBAIC01Niw4ICs1Niw4IEBA
IHB1YmxpYzoKICAgICB0eXBlZGVmIEFSTXY3QXNzZW1ibGVyOjpKdW1wTGlua1R5cGUgSnVtcExp
bmtUeXBlOwogICAgIHR5cGVkZWYgQVJNdjdBc3NlbWJsZXI6OkNvbmRpdGlvbiBDb25kaXRpb247
CiAKLSAgICBzdGF0aWMgY29uc3QgQVJNdjdBc3NlbWJsZXI6OkNvbmRpdGlvbiBEZWZhdWx0Q29u
ZGl0aW9uID0gQVJNdjdBc3NlbWJsZXI6OkNvbmRpdGlvbkludmFsaWQ7Ci0gICAgc3RhdGljIGNv
bnN0IEFSTXY3QXNzZW1ibGVyOjpKdW1wVHlwZSBEZWZhdWx0SnVtcCA9IEFSTXY3QXNzZW1ibGVy
OjpKdW1wTm9Db25kaXRpb25GaXhlZFNpemU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBUk12N0Fz
c2VtYmxlcjo6Q29uZGl0aW9uIERlZmF1bHRDb25kaXRpb24gPSBBUk12N0Fzc2VtYmxlcjo6Q29u
ZGl0aW9uSW52YWxpZDsKKyAgICBzdGF0aWMgY29uc3RleHByIEFSTXY3QXNzZW1ibGVyOjpKdW1w
VHlwZSBEZWZhdWx0SnVtcCA9IEFSTXY3QXNzZW1ibGVyOjpKdW1wTm9Db25kaXRpb25GaXhlZFNp
emU7CiAKICAgICBzdGF0aWMgYm9vbCBpc0NvbXBhY3RQdHJBbGlnbmVkQWRkcmVzc09mZnNldChw
dHJkaWZmX3QgdmFsdWUpCiAgICAgewpAQCAtMTAzLDcgKzEwMyw3IEBAIHB1YmxpYzoKICAgICB9
OwogICAgIAogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBTY2FsZSBTY2FsZVB0ciA9IFRpbWVz
Rm91cjsKKyAgICBzdGF0aWMgY29uc3RleHByIFNjYWxlIFNjYWxlUHRyID0gVGltZXNGb3VyOwog
CiAgICAgZW51bSBSZWxhdGlvbmFsQ29uZGl0aW9uIHsKICAgICAgICAgRXF1YWwgPSBBUk12N0Fz
c2VtYmxlcjo6Q29uZGl0aW9uRVEsCkBAIC0xNDMsOSArMTQzLDkgQEAgcHVibGljOgogICAgICAg
ICBEb3VibGVMZXNzVGhhbk9yRXF1YWxPclVub3JkZXJlZCA9IEFSTXY3QXNzZW1ibGVyOjpDb25k
aXRpb25MRSwKICAgICB9OwogCi0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnNwOwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIGZyYW1lUG9pbnRlclJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpmcDsKLSAgICBzdGF0aWMg
Y29uc3QgUmVnaXN0ZXJJRCBsaW5rUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OmxyOworICAgIHN0
YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBzdGFja1BvaW50ZXJSZWdpc3RlciA9IEFSTVJlZ2lz
dGVyczo6c3A7CisgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGZyYW1lUG9pbnRlclJl
Z2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpmcDsKKyAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVy
SUQgbGlua1JlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpscjsKIAogICAgIC8vIEludGVnZXIgYXJp
dGhtZXRpYyBvcGVyYXRpb25zOgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwOCw3ICs0MDgsNyBAQCBzdHJ1Y3QgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRySGFzaCB7CiAgICAgewogICAgICAgICByZXR1cm4gYSA9PSBiOwog
ICAgIH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRl
ZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5
T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIC8vIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjoKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ck1JUFMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTUlQUyBUZWNobm9sb2dpZXMsIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM4LDggKzM4LDggQEAg
dXNpbmcgQXNzZW1ibGVyID0gVEFSR0VUX0FTU0VNQkxFUjsKIGNsYXNzIE1hY3JvQXNzZW1ibGVy
TUlQUyA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFzc2VtYmxlcj4gewogcHVibGlj
OgogICAgIHR5cGVkZWYgTUlQU1JlZ2lzdGVyczo6RlBSZWdpc3RlcklEIEZQUmVnaXN0ZXJJRDsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtR1BScyA9IDMyOwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBudW1GUFJzID0gMzI7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBu
dW1HUFJzID0gMzI7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1GUFJzID0gMzI7
CiAKICAgICBNYWNyb0Fzc2VtYmxlck1JUFMoKQogICAgICAgICA6IG1fZml4ZWRXaWR0aChmYWxz
ZSkKQEAgLTYxLDIxICs2MSwyMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBnZXRMU0JTZXQo
dik7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0IFNjYWxlIFNjYWxlUHRyID0gVGltZXNGb3Vy
OworICAgIHN0YXRpYyBjb25zdGV4cHIgU2NhbGUgU2NhbGVQdHIgPSBUaW1lc0ZvdXI7CiAKICAg
ICAvLyBGb3Igc3RvcmluZyBpbW1lZGlhdGUgbnVtYmVyCi0gICAgc3RhdGljIGNvbnN0IFJlZ2lz
dGVySUQgaW1tVGVtcFJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6dDA7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBSZWdpc3RlcklEIGltbVRlbXBSZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnQwOwog
ICAgIC8vIEZvciBzdG9yaW5nIGRhdGEgbG9hZGVkIGZyb20gdGhlIG1lbW9yeQotICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIGRhdGFUZW1wUmVnaXN0ZXIgPSBNSVBTUmVnaXN0ZXJzOjp0MTsK
KyAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVySUQgZGF0YVRlbXBSZWdpc3RlciA9IE1JUFNS
ZWdpc3RlcnM6OnQxOwogICAgIC8vIEZvciBzdG9yaW5nIGFkZHJlc3MgYmFzZQotICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIGFkZHJUZW1wUmVnaXN0ZXIgPSBNSVBTUmVnaXN0ZXJzOjp0NzsK
KyAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVySUQgYWRkclRlbXBSZWdpc3RlciA9IE1JUFNS
ZWdpc3RlcnM6OnQ3OwogICAgIC8vIEZvciBzdG9yaW5nIGNvbXBhcmUgcmVzdWx0Ci0gICAgc3Rh
dGljIGNvbnN0IFJlZ2lzdGVySUQgY21wVGVtcFJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6dDg7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGNtcFRlbXBSZWdpc3RlciA9IE1JUFNS
ZWdpc3RlcnM6OnQ4OwogCiAgICAgLy8gRlAgdGVtcCByZWdpc3RlcgotICAgIHN0YXRpYyBjb25z
dCBGUFJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIgPSBNSVBTUmVnaXN0ZXJzOjpmMTY7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBGUFJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIgPSBNSVBTUmVnaXN0
ZXJzOjpmMTY7CiAKLSAgICBzdGF0aWMgY29uc3QgaW50IE1heGltdW1Db21wYWN0UHRyQWxpZ25l
ZEFkZHJlc3NPZmZzZXQgPSAweDdGRkZGRkZGOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IE1h
eGltdW1Db21wYWN0UHRyQWxpZ25lZEFkZHJlc3NPZmZzZXQgPSAweDdGRkZGRkZGOwogCiAgICAg
ZW51bSBSZWxhdGlvbmFsQ29uZGl0aW9uIHsKICAgICAgICAgRXF1YWwsCkBAIC0xMTgsOSArMTE4
LDkgQEAgcHVibGljOgogICAgICAgICBTY2FsZQogICAgIH07CiAKLSAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCBzdGFja1BvaW50ZXJSZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnNwOwotICAg
IHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGZyYW1lUG9pbnRlclJlZ2lzdGVyID0gTUlQU1JlZ2lz
dGVyczo6ZnA7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuQWRkcmVzc1JlZ2lz
dGVyID0gTUlQU1JlZ2lzdGVyczo6cmE7CisgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklE
IHN0YWNrUG9pbnRlclJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6c3A7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBSZWdpc3RlcklEIGZyYW1lUG9pbnRlclJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6
ZnA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIHJldHVybkFkZHJlc3NSZWdpc3Rl
ciA9IE1JUFNSZWdpc3RlcnM6OnJhOwogCiAgICAgLy8gSW50ZWdlciBhcml0aG1ldGljIG9wZXJh
dGlvbnM6CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODYuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMzLDEwICszMywxMCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgTWFjcm9Bc3Nl
bWJsZXJYODYgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJYODZDb21tb24gewogcHVibGljOgotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1HUFJzID0gODsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgbnVtRlBScyA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1HUFJz
ID0gODsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUZQUnMgPSA4OwogICAgIAot
ICAgIHN0YXRpYyBjb25zdCBTY2FsZSBTY2FsZVB0ciA9IFRpbWVzRm91cjsKKyAgICBzdGF0aWMg
Y29uc3RleHByIFNjYWxlIFNjYWxlUHRyID0gVGltZXNGb3VyOwogCiAgICAgdXNpbmcgTWFjcm9B
c3NlbWJsZXJYODZDb21tb246OmFkZDMyOwogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uOjphbmQzMjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJYODZDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24u
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDgtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb24gOiBwdWJsaWMgQQogcHVibGljOgogI2lmIENQVShYODZfNjQpCiAgICAgLy8gVXNl
IHRoaXMgZGlyZWN0bHkgb25seSBpZiB5b3UncmUgbm90IGdlbmVyYXRpbmcgY29kZSB3aXRoIGl0
LgotICAgIHN0YXRpYyBjb25zdCBYODZSZWdpc3RlcnM6OlJlZ2lzdGVySUQgc19zY3JhdGNoUmVn
aXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxMTsKKyAgICBzdGF0aWMgY29uc3RleHByIFg4NlJlZ2lz
dGVyczo6UmVnaXN0ZXJJRCBzX3NjcmF0Y2hSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6cjExOwog
CiAgICAgLy8gVXNlIHRoaXMgd2hlbiBnZW5lcmF0aW5nIGNvZGUgc28gdGhhdCB3ZSBnZXQgZW5m
b3JjZW1lbnQgb2YgdGhlIGRpc2FsbG93aW5nIG9mIHNjcmF0Y2ggcmVnaXN0ZXIKICAgICAvLyB1
c2FnZS4KQEAgLTUyLDkgKzUyLDkgQEAgcHVibGljOgogI2VuZGlmCiAgICAgCiBwcm90ZWN0ZWQ6
Ci0gICAgc3RhdGljIGNvbnN0IGludCBEb3VibGVDb25kaXRpb25CaXRJbnZlcnQgPSAweDEwOwot
ICAgIHN0YXRpYyBjb25zdCBpbnQgRG91YmxlQ29uZGl0aW9uQml0U3BlY2lhbCA9IDB4MjA7Ci0g
ICAgc3RhdGljIGNvbnN0IGludCBEb3VibGVDb25kaXRpb25CaXRzID0gRG91YmxlQ29uZGl0aW9u
Qml0SW52ZXJ0IHwgRG91YmxlQ29uZGl0aW9uQml0U3BlY2lhbDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGludCBEb3VibGVDb25kaXRpb25CaXRJbnZlcnQgPSAweDEwOworICAgIHN0YXRpYyBjb25z
dGV4cHIgaW50IERvdWJsZUNvbmRpdGlvbkJpdFNwZWNpYWwgPSAweDIwOworICAgIHN0YXRpYyBj
b25zdGV4cHIgaW50IERvdWJsZUNvbmRpdGlvbkJpdHMgPSBEb3VibGVDb25kaXRpb25CaXRJbnZl
cnQgfCBEb3VibGVDb25kaXRpb25CaXRTcGVjaWFsOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBY
ODZBc3NlbWJsZXI6OlhNTVJlZ2lzdGVySUQgWE1NUmVnaXN0ZXJJRDsKQEAgLTEwNiw4ICsxMDYs
OCBAQCBwdWJsaWM6CiAgICAgICAgICEoKFg4NkFzc2VtYmxlcjo6Q29uZGl0aW9uRSB8IFg4NkFz
c2VtYmxlcjo6Q29uZGl0aW9uTkUgfCBYODZBc3NlbWJsZXI6OkNvbmRpdGlvbkEgfCBYODZBc3Nl
bWJsZXI6OkNvbmRpdGlvbkFFIHwgWDg2QXNzZW1ibGVyOjpDb25kaXRpb25CIHwgWDg2QXNzZW1i
bGVyOjpDb25kaXRpb25CRSkgJiBEb3VibGVDb25kaXRpb25CaXRzKSwKICAgICAgICAgRG91Ymxl
Q29uZGl0aW9uQml0c19zaG91bGRfbm90X2ludGVyZmVyZV93aXRoX1g4NkFzc2VtYmxlcl9Db25k
aXRpb25fY29kZXMpOwogCi0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgc3RhY2tQb2ludGVy
UmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVzcDsKLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCBmcmFtZVBvaW50ZXJSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWJwOworICAgIHN0YXRpYyBj
b25zdGV4cHIgUmVnaXN0ZXJJRCBzdGFja1BvaW50ZXJSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6
ZXNwOworICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBmcmFtZVBvaW50ZXJSZWdpc3Rl
ciA9IFg4NlJlZ2lzdGVyczo6ZWJwOwogICAgIAogICAgIHN0YXRpYyBib29sIGNhbkJsaW5kKCkg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHNob3VsZEJsaW5kRm9yU3BlY2lmaWNB
cmNoKHVpbnQzMl90IHZhbHVlKSB7IHJldHVybiB2YWx1ZSA+PSAweDAwZmZmZmZmOyB9CkBAIC0x
MTAzLDcgKzExMDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhYnNEb3VibGUoRlBSZWdpc3RlcklE
IHNyYywgRlBSZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAgICAgIEFTU0VSVChzcmMgIT0gZHN0
KTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBuZWdhdGl2ZVplcm9Db25zdGFudCA9IC0w
LjA7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIG5lZ2F0aXZlWmVyb0NvbnN0YW50
ID0gLTAuMDsKICAgICAgICAgbG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZuZWdhdGl2ZVplcm9D
b25zdGFudCksIGRzdCk7CiAgICAgICAgIG1fYXNzZW1ibGVyLmFuZG5wZF9ycihzcmMsIGRzdCk7
CiAgICAgfQpAQCAtMTExMSw3ICsxMTExLDcgQEAgcHVibGljOgogICAgIHZvaWQgbmVnYXRlRG91
YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkc3QpCiAgICAgewogICAgICAgICBB
U1NFUlQoc3JjICE9IGRzdCk7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgbmVnYXRpdmVa
ZXJvQ29uc3RhbnQgPSAtMC4wOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBuZWdh
dGl2ZVplcm9Db25zdGFudCA9IC0wLjA7CiAgICAgICAgIGxvYWREb3VibGUoVHJ1c3RlZEltbVB0
cigmbmVnYXRpdmVaZXJvQ29uc3RhbnQpLCBkc3QpOwogICAgICAgICBtX2Fzc2VtYmxlci54b3Jw
ZF9ycihzcmMsIGRzdCk7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82
NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsMTAgKzM3LDEwIEBAIG5hbWVzcGFjZSBKU0Mgewog
CiBjbGFzcyBNYWNyb0Fzc2VtYmxlclg4Nl82NCA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclg4NkNv
bW1vbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUdQUnMgPSAxNjsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtRlBScyA9IDE2OworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgbnVtR1BScyA9IDE2OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgbnVtRlBScyA9IDE2OwogICAgIAotICAgIHN0YXRpYyBjb25zdCBTY2FsZSBTY2FsZVB0ciA9
IFRpbWVzRWlnaHQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBTY2FsZSBTY2FsZVB0ciA9IFRpbWVz
RWlnaHQ7CiAKICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YWRkMzI7CiAgICAg
dXNpbmcgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmFuZDMyOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNDAyOSw3ICs0MDI5LDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBj
bGFzcyBYODZJbnN0cnVjdGlvbkZvcm1hdHRlciB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQg
bWF4SW5zdHJ1Y3Rpb25TaXplID0gMTY7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IG1h
eEluc3RydWN0aW9uU2l6ZSA9IDE2OwogCiAgICAgcHVibGljOgogICAgICAgICBlbnVtIE1vZFJt
TW9kZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYW5rLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFuay5oCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYW5rLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYs
NyArMzYsNyBAQCBlbnVtIEJhbmsgOiBpbnQ4X3QgewogICAgIEZQCiB9OwogCi1zdGF0aWMgY29u
c3QgdW5zaWduZWQgbnVtQmFua3MgPSAyOworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1C
YW5rcyA9IDI7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CiB2b2lkIGZvckVhY2hCYW5rKGNv
bnN0IEZ1bmMmIGZ1bmMpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDaGVja1Nw
ZWNpYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDaGVja1Nw
ZWNpYWwuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q2hlY2tTcGVjaWFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNDMsNyArMTQzLDcgQEAgcHJpdmF0
ZToKIHN0cnVjdCBDaGVja1NwZWNpYWxLZXlIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFz
aChjb25zdCBDaGVja1NwZWNpYWw6OktleSYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAg
ICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgQ2hlY2tTcGVjaWFsOjpLZXkmIGEsIGNvbnN0IENo
ZWNrU3BlY2lhbDo6S2V5JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAK
IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwpAQCAtMTU4LDcgKzE1OCw3IEBAIHRlbXBsYXRlPD4g
c3RydWN0IERlZmF1bHRIYXNoPEpTQzo6QjM6OkMKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBIYXNoVHJhaXRzOwogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkIzOjpDaGVj
a1NwZWNpYWw6OktleT4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpCMzo6Q2hlY2tTcGVj
aWFsOjpLZXk+IHsKICAgICAvLyBJIGRvbid0IHdhbnQgdG8gdGhpbmsgYWJvdXQgdGhpcyB2ZXJ5
IGhhcmQsIGl0J3Mgbm90IHdvcnRoIGl0LiBJJ20gYSBiZSBjb25zZXJ2YXRpdmUuCi0gICAgc3Rh
dGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWls
cy5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1
cGxpY2F0ZVRhaWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgewogbmFtZXNwYWNlIHsKIAogbmFtZXNwYWNlIEIzRHVwbGljYXRl
VGFpbHNJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0
aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiBjbGFzcyBEdXBsaWNhdGVU
YWlscyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNFbGltaW5hdGVDb21tb25T
dWJleHByZXNzaW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzRWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9u
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NCw3ICs1NCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgQjMgewogbmFtZXNwYWNlIHsKIAogbmFtZXNwYWNlIEIzRWxpbWluYXRlQ29tbW9u
U3ViZXhwcmVzc2lvbnNJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiAvLyBGSVhN
RTogV2UgY291bGQgdHJlYXQgUGF0Y2hwb2ludHMgd2l0aCBhIG5vbi1lbXB0eSBzZXQgb2YgcmVh
ZHMgYXMgYSAibWVtb3J5IHZhbHVlIiBhbmQgc29tZWhvdwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzRml4U1NBLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNGaXhTU0EuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNGaXhTU0EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDksNyArNDksNyBAQCBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBC
M0ZpeFNTQUludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0
YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIHZvaWQga2lsbERlYWRW
YXJpYWJsZXMoUHJvY2VkdXJlJiBwcm9jKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzRm9sZFBhdGhDb25zdGFudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRm9sZFBhdGhDb25zdGFudHMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiBuYW1lc3Bh
Y2UgewogCiBuYW1lc3BhY2UgQjNGb2xkUGF0aENvbnN0YW50c0ludGVybmFsIHsKLXN0YXRpYyBj
b25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7CiB9CiAKIGNsYXNzIEZvbGRQYXRoQ29uc3RhbnRzIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuY3BwCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogbmFt
ZXNwYWNlIHsKIAogbmFtZXNwYWNlIEIzSW5mZXJTd2l0Y2hlc0ludGVybmFsIHsKLXN0YXRpYyBj
b25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7CiB9CiAKIGNsYXNzIEluZmVyU3dpdGNoZXMgewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzS2luZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0tpbmQuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzS2luZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIxMSw3ICsyMTEsNyBAQCBpbmxpbmUgS2luZCB0
cmFwcGluZyhLaW5kIGtpbmQpCiBzdHJ1Y3QgS2luZEhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25l
ZCBoYXNoKGNvbnN0IEtpbmQmIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRp
YyBib29sIGVxdWFsKGNvbnN0IEtpbmQmIGEsIGNvbnN0IEtpbmQmIGIpIHsgcmV0dXJuIGEgPT0g
YjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlP
ckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCkBAIC0yMjUs
NyArMjI1LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpCMzo6SwogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0
IEhhc2hUcmFpdHM8SlNDOjpCMzo6S2luZD4gOiBwdWJsaWMgU2ltcGxlQ2xhc3NIYXNoVHJhaXRz
PEpTQzo6QjM6OktpbmQ+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJv
ID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBm
YWxzZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Miw3ICs3
Miw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogbmFtZXNwYWNlIHsKIAogbmFt
ZXNwYWNlIEIzTG93ZXJUb0FpckludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2Ug
PSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIHVz
aW5nIEFyZyA9IEFpcjo6QXJnOwpAQCAtNTMxLDcgKzUzMSw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICByZXR1cm4gQXJnOjphZGRyKHRtcChhZGRyZXNzKSwgb2Zmc2V0KTsKICAgICAgICAgfTsK
ICAgICAgICAgCi0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBsb3RzT2ZVc2VzID0gMTA7
IC8vIFRoaXMgaXMgYXJiaXRyYXJ5IGFuZCB3ZSBzaG91bGQgdHVuZSBpdCBldmVudHVhbGx5Lgor
ICAgICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGxvdHNPZlVzZXMgPSAxMDsgLy8gVGhp
cyBpcyBhcmJpdHJhcnkgYW5kIHdlIHNob3VsZCB0dW5lIGl0IGV2ZW50dWFsbHkuCiAKICAgICAg
ICAgLy8gT25seSBtYXRjaCBpZiB0aGUgYWRkcmVzcyB2YWx1ZSBpc24ndCB1c2VkIGluIHNvbWUg
bGFyZ2UgbnVtYmVyIG9mIHBsYWNlcy4KICAgICAgICAgaWYgKG1fdXNlQ291bnRzLm51bVVzZXMo
YWRkcmVzcykgPiBsb3RzT2ZVc2VzKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
TmF0aXZlVHJhaXRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
TmF0aXZlVHJhaXRzLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM05hdGl2ZVRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcxICszNyw3MSBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZT4gc3RydWN0IE5hdGl2ZVRyYWl0czsKIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
TmF0aXZlVHJhaXRzPGludDhfdD4gewogICAgIHR5cGVkZWYgaW50MzJfdCBDYW5vbmljYWxUeXBl
OwotICAgIHN0YXRpYyBjb25zdCBCYW5rIGJhbmsgPSBHUDsKLSAgICBzdGF0aWMgY29uc3QgV2lk
dGggd2lkdGggPSBXaWR0aDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBCYW5rIGJhbmsgPSBHUDsK
KyAgICBzdGF0aWMgY29uc3RleHByIFdpZHRoIHdpZHRoID0gV2lkdGg4OwogICAgIHN0YXRpYyBj
b25zdGV4cHIgVHlwZSB0eXBlID0gSW50MzI7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBOYXRp
dmVUcmFpdHM8dWludDhfdD4gewogICAgIHR5cGVkZWYgaW50MzJfdCBDYW5vbmljYWxUeXBlOwot
ICAgIHN0YXRpYyBjb25zdCBCYW5rIGJhbmsgPSBHUDsKLSAgICBzdGF0aWMgY29uc3QgV2lkdGgg
d2lkdGggPSBXaWR0aDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBCYW5rIGJhbmsgPSBHUDsKKyAg
ICBzdGF0aWMgY29uc3RleHByIFdpZHRoIHdpZHRoID0gV2lkdGg4OwogICAgIHN0YXRpYyBjb25z
dGV4cHIgVHlwZSB0eXBlID0gSW50MzI7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBOYXRpdmVU
cmFpdHM8aW50MTZfdD4gewogICAgIHR5cGVkZWYgaW50MzJfdCBDYW5vbmljYWxUeXBlOwotICAg
IHN0YXRpYyBjb25zdCBCYW5rIGJhbmsgPSBHUDsKLSAgICBzdGF0aWMgY29uc3QgV2lkdGggd2lk
dGggPSBXaWR0aDE2OworICAgIHN0YXRpYyBjb25zdGV4cHIgQmFuayBiYW5rID0gR1A7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBXaWR0aCB3aWR0aCA9IFdpZHRoMTY7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBUeXBlIHR5cGUgPSBJbnQzMjsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IE5hdGl2ZVRy
YWl0czx1aW50MTZfdD4gewogICAgIHR5cGVkZWYgaW50MzJfdCBDYW5vbmljYWxUeXBlOwotICAg
IHN0YXRpYyBjb25zdCBCYW5rIGJhbmsgPSBHUDsKLSAgICBzdGF0aWMgY29uc3QgV2lkdGggd2lk
dGggPSBXaWR0aDE2OworICAgIHN0YXRpYyBjb25zdGV4cHIgQmFuayBiYW5rID0gR1A7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBXaWR0aCB3aWR0aCA9IFdpZHRoMTY7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBUeXBlIHR5cGUgPSBJbnQzMjsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IE5hdGl2ZVRy
YWl0czxpbnQzMl90PiB7CiAgICAgdHlwZWRlZiBpbnQzMl90IENhbm9uaWNhbFR5cGU7Ci0gICAg
c3RhdGljIGNvbnN0IEJhbmsgYmFuayA9IEdQOwotICAgIHN0YXRpYyBjb25zdCBXaWR0aCB3aWR0
aCA9IFdpZHRoMzI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBCYW5rIGJhbmsgPSBHUDsKKyAgICBz
dGF0aWMgY29uc3RleHByIFdpZHRoIHdpZHRoID0gV2lkdGgzMjsKICAgICBzdGF0aWMgY29uc3Rl
eHByIFR5cGUgdHlwZSA9IEludDMyOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgTmF0aXZlVHJh
aXRzPHVpbnQzMl90PiB7CiAgICAgdHlwZWRlZiBpbnQzMl90IENhbm9uaWNhbFR5cGU7Ci0gICAg
c3RhdGljIGNvbnN0IEJhbmsgYmFuayA9IEdQOwotICAgIHN0YXRpYyBjb25zdCBXaWR0aCB3aWR0
aCA9IFdpZHRoMzI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBCYW5rIGJhbmsgPSBHUDsKKyAgICBz
dGF0aWMgY29uc3RleHByIFdpZHRoIHdpZHRoID0gV2lkdGgzMjsKICAgICBzdGF0aWMgY29uc3Rl
eHByIFR5cGUgdHlwZSA9IEludDMyOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgTmF0aXZlVHJh
aXRzPGludDY0X3Q+IHsKICAgICB0eXBlZGVmIGludDY0X3QgQ2Fub25pY2FsVHlwZTsKLSAgICBz
dGF0aWMgY29uc3QgQmFuayBiYW5rID0gR1A7Ci0gICAgc3RhdGljIGNvbnN0IFdpZHRoIHdpZHRo
ID0gV2lkdGg2NDsKKyAgICBzdGF0aWMgY29uc3RleHByIEJhbmsgYmFuayA9IEdQOworICAgIHN0
YXRpYyBjb25zdGV4cHIgV2lkdGggd2lkdGggPSBXaWR0aDY0OwogICAgIHN0YXRpYyBjb25zdGV4
cHIgVHlwZSB0eXBlID0gSW50NjQ7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBOYXRpdmVUcmFp
dHM8dWludDY0X3Q+IHsKICAgICB0eXBlZGVmIGludDY0X3QgQ2Fub25pY2FsVHlwZTsKLSAgICBz
dGF0aWMgY29uc3QgQmFuayBiYW5rID0gR1A7Ci0gICAgc3RhdGljIGNvbnN0IFdpZHRoIHdpZHRo
ID0gV2lkdGg2NDsKKyAgICBzdGF0aWMgY29uc3RleHByIEJhbmsgYmFuayA9IEdQOworICAgIHN0
YXRpYyBjb25zdGV4cHIgV2lkdGggd2lkdGggPSBXaWR0aDY0OwogICAgIHN0YXRpYyBjb25zdGV4
cHIgVHlwZSB0eXBlID0gSW50NjQ7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBOYXRpdmVUcmFp
dHM8ZmxvYXQ+IHsKICAgICB0eXBlZGVmIGZsb2F0IENhbm9uaWNhbFR5cGU7Ci0gICAgc3RhdGlj
IGNvbnN0IEJhbmsgYmFuayA9IEZQOwotICAgIHN0YXRpYyBjb25zdCBXaWR0aCB3aWR0aCA9IFdp
ZHRoMzI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBCYW5rIGJhbmsgPSBGUDsKKyAgICBzdGF0aWMg
Y29uc3RleHByIFdpZHRoIHdpZHRoID0gV2lkdGgzMjsKICAgICBzdGF0aWMgY29uc3RleHByIFR5
cGUgdHlwZSA9IEZsb2F0OwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgTmF0aXZlVHJhaXRzPGRv
dWJsZT4gewogICAgIHR5cGVkZWYgZG91YmxlIENhbm9uaWNhbFR5cGU7Ci0gICAgc3RhdGljIGNv
bnN0IEJhbmsgYmFuayA9IEZQOwotICAgIHN0YXRpYyBjb25zdCBXaWR0aCB3aWR0aCA9IFdpZHRo
NjQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBCYW5rIGJhbmsgPSBGUDsKKyAgICBzdGF0aWMgY29u
c3RleHByIFdpZHRoIHdpZHRoID0gV2lkdGg2NDsKICAgICBzdGF0aWMgY29uc3RleHByIFR5cGUg
dHlwZSA9IERvdWJsZTsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Jl
ZHVjZURvdWJsZVRvRmxvYXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VEb3VibGVUb0Zsb2F0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiBu
YW1lc3BhY2UgewogCiBuYW1lc3BhY2UgQjNSZWR1Y2VEb3VibGVUb0Zsb2F0SW50ZXJuYWwgewot
c3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29s
IHZlcmJvc2UgPSBmYWxzZTsKIH0KIGJvb2wgcHJpbnRSZW1haW5pbmdDb252ZXJzaW9ucyA9IGZh
bHNlOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VMb29wU3RyZW5n
dGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZUxv
b3BTdHJlbmd0aC5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1JlZHVjZUxvb3BTdHJlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw3ICsx
NDUsNyBAQCB2b2lkIGZhc3RGb3J3YXJkQ29weTMyKHVpbnQzMl90KiBkc3QsIGNvCiAjZW5kaWYK
IAogY2xhc3MgUmVkdWNlTG9vcFN0cmVuZ3RoIHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsK
IAogICAgIHN0cnVjdCBBZGRySW5mbyB7CiAgICAgICAgIFZhbHVlKiBhcHBlbmRBZGRyKFByb2Nl
ZHVyZSYgcHJvYywgQmFzaWNCbG9jayogYmxvY2ssIFZhbHVlKiBhZGRyKQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtOTAsNyArOTAsNyBAQCBuYW1lc3BhY2UgewogLy8gY2Fub25pY2Fs
IGlmIHgtPmluZGV4KCkgPD0geS0+aW5kZXgoKS4KIAogbmFtZXNwYWNlIEIzUmVkdWNlU3RyZW5n
dGhJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMg
Y29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiAvLyBGSVhNRTogVGhpcyBJbnRS
YW5nZSBzdHVmZiBzaG91bGQgYmUgcmVmYWN0b3JlZCBpbnRvIGEgZ2VuZXJhbCBjb25zdGFudCBw
cm9wYWdhdG9yLiBJdCdzIHdlaXJkCkBAIC0yMTAyLDcgKzIxMDIsNyBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgLy8gYmxvY2tzLiBUaGlzIGlzIHByZXR0eSBtdWNoIGd1YXJhbnRlZWQgc2luY2Ug
b25lIG9mIHRob3NlIGJsb2NrcyB3aWxsIHJlcGxhY2UgYWxsCiAgICAgICAgICAgICAvLyB1c2Vz
IG9mIHRoZSBTZWxlY3Qgd2l0aCBhIGNvbnN0YW50LCBhbmQgdGhhdCBjb25zdGFudCB3aWxsIGJl
IHRyYW5zaXRpdmVseSB1c2VkCiAgICAgICAgICAgICAvLyBmcm9tIHRoZSBjaGVjay4KLSAgICAg
ICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzZWxlY3RTcGVjaWFsaXphdGlvbkJvdW5kID0g
MzsKKyAgICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc2VsZWN0U3BlY2lhbGl6
YXRpb25Cb3VuZCA9IDM7CiAgICAgICAgICAgICBWYWx1ZSogc2VsZWN0ID0gZmluZFJlY2VudE5v
ZGVNYXRjaGluZygKICAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSwgc2VsZWN0U3Bl
Y2lhbGl6YXRpb25Cb3VuZCwKICAgICAgICAgICAgICAgICBbJl0gKFZhbHVlKiB2YWx1ZSkgLT4g
Ym9vbCB7CkBAIC0yMjg2LDcgKzIyODYsNyBAQCBwcml2YXRlOgogICAgICAgICBSRUxFQVNFX0FT
U0VSVChzdGFydEluZGV4ICE9IFVJTlRfTUFYKTsKIAogICAgICAgICAvLyBCeSBCYXNpY0Jsb2Nr
IGNvbnZlbnRpb24sIGNhc2VJbmRleCA9PSAwID0+IHRoZW4sIGNhc2VJbmRleCA9PSAxID0+IGVs
c2UuCi0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1DYXNlcyA9IDI7CisgICAgICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtQ2FzZXMgPSAyOwogICAgICAgICBCYXNpY0Js
b2NrKiBjYXNlc1tudW1DYXNlc107CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBu
dW1DYXNlczsgKytpKQogICAgICAgICAgICAgY2FzZXNbaV0gPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0
Lmluc2VydEJlZm9yZShtX2Jsb2NrKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbHVlS2V5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFs
dWVLZXkuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
VmFsdWVLZXkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE3OCw3ICsxNzgsNyBAQCBwcml2YXRlOgog
c3RydWN0IFZhbHVlS2V5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgVmFs
dWVLZXkmIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFs
KGNvbnN0IFZhbHVlS2V5JiBhLCBjb25zdCBWYWx1ZUtleSYgYikgeyByZXR1cm4gYSA9PSBiOyB9
Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0
cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVs
ZXRlZCA9IHRydWU7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKQEAgLTE5Miw3ICsx
OTIsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxKU0M6OkIzOjpWCiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFz
aFRyYWl0czxKU0M6OkIzOjpWYWx1ZUtleT4gOiBwdWJsaWMgU2ltcGxlQ2xhc3NIYXNoVHJhaXRz
PEpTQzo6QjM6OlZhbHVlS2V5PiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlz
WmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJv
ID0gZmFsc2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjNfNi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiM182LmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiM182LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY2MiwxMSArMTY2Miwx
MSBAQCB2b2lkIHRlc3RJbnRlcnByZXRlcigpCiAgICAgZGlzcGF0Y2gtPmFwcGVuZFN1Y2Nlc3Nv
cihGcmVxdWVudGVkQmxvY2soc3RvcCkpOwogCiAgICAgLy8gT3VyICJvcGNvZGVzIi4KLSAgICBz
dGF0aWMgY29uc3QgaW50cHRyX3QgQWRkRFAgPSAwOwotICAgIHN0YXRpYyBjb25zdCBpbnRwdHJf
dCBBZGRDUCA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IGludHB0cl90IEFkZCA9IDI7Ci0gICAgc3Rh
dGljIGNvbnN0IGludHB0cl90IFByaW50ID0gMzsKLSAgICBzdGF0aWMgY29uc3QgaW50cHRyX3Qg
U3RvcCA9IDQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnRwdHJfdCBBZGREUCA9IDA7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBpbnRwdHJfdCBBZGRDUCA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBpbnRwdHJfdCBBZGQgPSAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50cHRyX3QgUHJpbnQg
PSAzOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50cHRyX3QgU3RvcCA9IDQ7CiAKICAgICBwb2x5
SnVtcC0+c2V0R2VuZXJhdG9yKAogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25z
dCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVyc0J5R3JhcGhDb2xvcmluZy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVJl
Z2lzdGVyc0J5R3JhcGhDb2xvcmluZy5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNCeUdyYXBoQ29sb3Jpbmcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTE2LDcgKzUxNiw3IEBAIHByb3RlY3RlZDoKICAgICBz
dHJ1Y3QgSW50ZXJmZXJlbmNlRWRnZUhhc2ggewogICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFz
aChjb25zdCBJbnRlcmZlcmVuY2VFZGdlJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAg
ICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgSW50ZXJmZXJlbmNlRWRnZSYgYSwgY29uc3Qg
SW50ZXJmZXJlbmNlRWRnZSYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgICAgIHN0YXRpYyBj
b25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICAgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1
ZTsKICAgICB9OwogICAgIHR5cGVkZWYgU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEludGVyZmVyZW5j
ZUVkZ2U+IEludGVyZmVyZW5jZUVkZ2VIYXNoVHJhaXRzOwogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2tCeUdyYXBoQ29sb3JpbmcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVTdGFja0J5
R3JhcGhDb2xvcmluZy5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVTdGFja0J5R3JhcGhDb2xvcmluZy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBu
YW1lc3BhY2UKIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBBaXJBbGxvY2F0ZVN0YWNrQnlHcmFw
aENvbG9yaW5nSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwor
c3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogc3RydWN0IENvYWxl
c2NhYmxlTW92ZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0xNDY3LDcgKzE0NjcsNyBAQCBwcml2YXRlOgogc3RydWN0IEFy
Z0hhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEFyZyYga2V5KSB7IHJldHVy
biBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgQXJnJiBhLCBjb25z
dCBBcmcmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVU
b0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6QjM6OkFpcgpAQCAtMTQ4OSw3ICsxNDg5LDcgQEAgdGVtcGxhdGU8PiBz
dHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpCMzo6QQogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0
IEhhc2hUcmFpdHM7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPEpTQzo6QjM6OkFpcjo6
QXJnPiA6IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxKU0M6OkIzOjpBaXI6OkFyZz4gewogICAgIC8v
IEJlY2F1c2UgbV9zY2FsZSBpcyAxIGluIHRoZSBlbXB0eSB2YWx1ZS4KLSAgICBzdGF0aWMgY29u
c3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxsU3BlY2lhbC5o
CShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckND
YWxsU3BlY2lhbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAg
ICAgLy8gWW91IGNhbm5vdCB1c2UgdGhpcyByZWdpc3RlciB0byBwYXNzIGFyZ3VtZW50cy4gSXQg
anVzdCBzbyBoYXBwZW5zIHRoYXQgdGhpcyByZWdpc3RlciBpcyBub3QKICAgICAvLyB1c2VkIGZv
ciBhcmd1bWVudHMgaW4gdGhlIEMgY2FsbGluZyBjb252ZW50aW9uLiBCeSB0aGUgd2F5LCB0aGlz
IGlzIHRoZSBvbmx5IHRoaW5nIHRoYXQgY2F1c2VzCiAgICAgLy8gdGhpcyBzcGVjaWFsIHRvIGJl
IHNwZWNpZmljIHRvIEMgY2FsbHMuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBzY3JhdGNoUmVn
aXN0ZXIgPSBHUFJJbmZvOjpub25QcmVzZXJ2ZWROb25Bcmd1bWVudEdQUjA7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgc2NyYXRjaFJlZ2lzdGVyID0gR1BSSW5mbzo6bm9uUHJlc2VydmVk
Tm9uQXJndW1lbnRHUFIwOwogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmb3JFYWNoQXJnKEluc3Qm
LCBjb25zdCBTY29wZWRMYW1iZGE8SW5zdDo6RWFjaEFyZ0NhbGxiYWNrPiYpIGZpbmFsOwpAQCAt
NjUsMTUgKzY1LDE1IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGRlZXBEdW1wSW1wbChQcmludFN0
cmVhbSYpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBzcGVjaWFsQXJnT2Zmc2V0ID0gMDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtU3Bl
Y2lhbEFyZ3MgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjYWxsZWVBcmdPZmZzZXQg
PSBudW1TcGVjaWFsQXJnczsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtQ2FsbGVlQXJn
cyA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHJldHVybkdQQXJnT2Zmc2V0ID0gbnVt
U3BlY2lhbEFyZ3MgKyBudW1DYWxsZWVBcmdzOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBu
dW1SZXR1cm5HUEFyZ3MgPSAyOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCByZXR1cm5GUEFy
Z09mZnNldCA9IG51bVNwZWNpYWxBcmdzICsgbnVtQ2FsbGVlQXJncyArIG51bVJldHVybkdQQXJn
czsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtUmV0dXJuRlBBcmdzID0gMTsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgYXJnQXJnT2Zmc2V0ID0KKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIHNwZWNpYWxBcmdPZmZzZXQgPSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgbnVtU3BlY2lhbEFyZ3MgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
Y2FsbGVlQXJnT2Zmc2V0ID0gbnVtU3BlY2lhbEFyZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBudW1DYWxsZWVBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IHJldHVybkdQQXJnT2Zmc2V0ID0gbnVtU3BlY2lhbEFyZ3MgKyBudW1DYWxsZWVBcmdzOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtUmV0dXJuR1BBcmdzID0gMjsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIHJldHVybkZQQXJnT2Zmc2V0ID0gbnVtU3BlY2lhbEFyZ3Mg
KyBudW1DYWxsZWVBcmdzICsgbnVtUmV0dXJuR1BBcmdzOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgbnVtUmV0dXJuRlBBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIGFyZ0FyZ09mZnNldCA9CiAgICAgICAgIG51bVNwZWNpYWxBcmdzICsgbnVtQ2FsbGVlQXJn
cyArIG51bVJldHVybkdQQXJncyArIG51bVJldHVybkZQQXJnczsKICAgICAKICAgICBSZWdpc3Rl
clNldCBtX2Nsb2JiZXJlZFJlZ3M7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckVtaXRTaHVmZmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckVtaXRTaHVmZmxlLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJFbWl0U2h1ZmZsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UK
IG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBBaXJFbWl0U2h1ZmZsZUludGVybmFsIHsKLXN0YXRp
YyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckZpeE9idmlvdXNTcGlsbHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRml4T2J2aW91c1NwaWxscy5j
cHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
Rml4T2J2aW91c1NwaWxscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MCw3ICs0MCw3IEBAIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UKIG5hbWVzcGFjZSB7CiAKIG5h
bWVzcGFjZSBBaXJGaXhPYnZpb3VzU3BpbGxzSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wg
dmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsK
IH0KIAogY2xhc3MgRml4T2J2aW91c1NwaWxscyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckZvcm1UYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyRm9ybVRhYmxlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRm9ybVRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsMTMg
KzMxLDEzIEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWly
IHsKIAotc3RhdGljIGNvbnN0IHVpbnQ4X3QgZm9ybVJvbGVTaGlmdCA9IDA7Ci1zdGF0aWMgY29u
c3QgdWludDhfdCBmb3JtUm9sZU1hc2sgPSAxNTsKLXN0YXRpYyBjb25zdCB1aW50OF90IGZvcm1C
YW5rU2hpZnQgPSA0Owotc3RhdGljIGNvbnN0IHVpbnQ4X3QgZm9ybUJhbmtNYXNrID0gMTsKLXN0
YXRpYyBjb25zdCB1aW50OF90IGZvcm1XaWR0aFNoaWZ0ID0gNTsKLXN0YXRpYyBjb25zdCB1aW50
OF90IGZvcm1XaWR0aE1hc2sgPSAzOwotc3RhdGljIGNvbnN0IHVpbnQ4X3QgZm9ybUludmFsaWRT
aGlmdCA9IDc7CitzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgZm9ybVJvbGVTaGlmdCA9IDA7Citz
dGF0aWMgY29uc3RleHByIHVpbnQ4X3QgZm9ybVJvbGVNYXNrID0gMTU7CitzdGF0aWMgY29uc3Rl
eHByIHVpbnQ4X3QgZm9ybUJhbmtTaGlmdCA9IDQ7CitzdGF0aWMgY29uc3RleHByIHVpbnQ4X3Qg
Zm9ybUJhbmtNYXNrID0gMTsKK3N0YXRpYyBjb25zdGV4cHIgdWludDhfdCBmb3JtV2lkdGhTaGlm
dCA9IDU7CitzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgZm9ybVdpZHRoTWFzayA9IDM7CitzdGF0
aWMgY29uc3RleHByIHVpbnQ4X3QgZm9ybUludmFsaWRTaGlmdCA9IDc7CiAKICNkZWZpbmUgRU5D
T0RFX0lOU1RfRk9STShyb2xlLCBiYW5rLCB3aWR0aCkgKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHJv
bGUpIDw8IGZvcm1Sb2xlU2hpZnQgfCBzdGF0aWNfY2FzdDx1aW50OF90PihiYW5rKSA8PCBmb3Jt
QmFua1NoaWZ0IHwgc3RhdGljX2Nhc3Q8dWludDhfdD4od2lkdGgpIDw8IGZvcm1XaWR0aFNoaWZ0
KQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyQWZ0ZXJSZWdB
bGxvYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJM
b3dlckFmdGVyUmVnQWxsb2MuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0Fpckxvd2VyQWZ0ZXJSZWdBbGxvYy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3Bh
Y2UKIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBBaXJMb3dlckFmdGVyUmVnQWxsb2NJbnRlcm5h
bCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHBy
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogICAgIAogfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNl
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFs
LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
UHJpbnRTcGVjaWFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTcsNyArOTcsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gWW91IGNhbm5vdCB1c2UgdGhpcyByZWdpc3RlciB0byBwYXNzIGFyZ3VtZW50cy4gSXQganVz
dCBzbyBoYXBwZW5zIHRoYXQgdGhpcyByZWdpc3RlciBpcyBub3QKICAgICAvLyB1c2VkIGZvciBh
cmd1bWVudHMgaW4gdGhlIEMgY2FsbGluZyBjb252ZW50aW9uLiBCeSB0aGUgd2F5LCB0aGlzIGlz
IHRoZSBvbmx5IHRoaW5nIHRoYXQgY2F1c2VzCiAgICAgLy8gdGhpcyBzcGVjaWFsIHRvIGJlIHNw
ZWNpZmljIHRvIEMgY2FsbHMuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBzY3JhdGNoUmVnaXN0
ZXIgPSBHUFJJbmZvOjpub25BcmdHUFIwOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHNj
cmF0Y2hSZWdpc3RlciA9IEdQUkluZm86Om5vbkFyZ0dQUjA7CiAgICAgCiBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBmb3JFYWNoQXJnKEluc3QmLCBjb25zdCBTY29wZWRMYW1iZGE8SW5zdDo6RWFjaEFy
Z0NhbGxiYWNrPiYpIGZpbmFsOwpAQCAtMTEzLDE0ICsxMTMsMTQgQEAgcHJvdGVjdGVkOgogICAg
IHZvaWQgZGVlcER1bXBJbXBsKFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CiAgICAgCiBwcml2
YXRlOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzcGVjaWFsQXJnT2Zmc2V0ID0gMDsKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtU3BlY2lhbEFyZ3MgPSAxOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBjYWxsZWVBcmdPZmZzZXQgPSBudW1TcGVjaWFsQXJnczsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgbnVtQ2FsbGVlQXJncyA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIHJldHVybkdQQXJnT2Zmc2V0ID0gbnVtU3BlY2lhbEFyZ3MgKyBudW1DYWxsZWVBcmdz
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1SZXR1cm5HUEFyZ3MgPSAyOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCByZXR1cm5GUEFyZ09mZnNldCA9IG51bVNwZWNpYWxBcmdzICsg
bnVtQ2FsbGVlQXJncyArIG51bVJldHVybkdQQXJnczsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgbnVtUmV0dXJuRlBBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNw
ZWNpYWxBcmdPZmZzZXQgPSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtU3Bl
Y2lhbEFyZ3MgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgY2FsbGVlQXJnT2Zm
c2V0ID0gbnVtU3BlY2lhbEFyZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1D
YWxsZWVBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHJldHVybkdQQXJn
T2Zmc2V0ID0gbnVtU3BlY2lhbEFyZ3MgKyBudW1DYWxsZWVBcmdzOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgbnVtUmV0dXJuR1BBcmdzID0gMjsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIHJldHVybkZQQXJnT2Zmc2V0ID0gbnVtU3BlY2lhbEFyZ3MgKyBudW1DYWxsZWVB
cmdzICsgbnVtUmV0dXJuR1BBcmdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVt
UmV0dXJuRlBBcmdzID0gMTsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGFyZ0FyZ09m
ZnNldCA9CiAgICAgbnVtU3BlY2lhbEFyZ3MgKyBudW1DYWxsZWVBcmdzICsgbnVtUmV0dXJuR1BB
cmdzICsgbnVtUmV0dXJuRlBBcmdzOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJTdGFja0FsbG9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyU3RhY2tBbGxvY2F0aW9uLmNwcAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTdGFja0FsbG9jYXRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTct
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBC
MyB7IG5hbWVzcGFjZQogbmFtZXNwYWNlIHsKIAogbmFtZXNwYWNlIEFpclN0YWNrQWxsb2NhdGlv
bkludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBj
b25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENv
bGxlY3Rpb24+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclRtcC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVG1wLmgJKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVG1wLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMjIsNyArMzIyLDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBUbXBIYXNo
IHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBUbXAmIGtleSkgeyByZXR1cm4ga2V5
Lmhhc2goKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFRtcCYgYSwgY29uc3QgVG1w
JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNh
ZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIH0gfSB9IC8vIG5hbWVz
cGFjZSBKU0M6OkIzOjpBaXIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9B
Y2Nlc3NDYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQWNjZXNzQ2FzZS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEs
NyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIG5hbWVzcGFjZSBBY2Nlc3NDYXNlSW50ZXJuYWwgewot
c3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29s
IHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogQWNjZXNzQ2FzZTo6QWNjZXNzQ2FzZShWTSYgdm0sIEpT
Q2VsbCogb3duZXIsIEFjY2Vzc1R5cGUgdHlwZSwgUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmIGNvbmRp
dGlvblNldCwgc3RkOjp1bmlxdWVfcHRyPFBvbHlQcm90b0FjY2Vzc0NoYWluPiBwcm90b3R5cGVB
Y2Nlc3NDaGFpbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlu
a1N0YXR1cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rU3RhdHVzLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAs
NyArNDAsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIG5hbWVzcGFjZSBDYWxsTGlua1N0YXR1c0lu
dGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25z
dGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIENhbGxMaW5rU3RhdHVzOjpDYWxsTGlu
a1N0YXR1cyhKU1ZhbHVlIHZhbHVlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NhbGxWYXJpYW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NhbGxWYXJpYW50LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9DYWxsVmFyaWFudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTUsNyAr
MTk1LDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBDYWxsVmFyaWFudEhhc2ggewogICAgIHN0YXRpYyB1
bnNpZ25lZCBoYXNoKGNvbnN0IENhbGxWYXJpYW50JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7
IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBDYWxsVmFyaWFudCYgYSwgY29uc3QgQ2Fs
bFZhcmlhbnQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNh
ZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogdHlwZWRl
ZiBWZWN0b3I8Q2FsbFZhcmlhbnQsIDE+IENhbGxWYXJpYW50TGlzdDsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5
KQpAQCAtMTExLDggKzExMSw4IEBAIHB1YmxpYzoKIAogICAgIGVudW0gQ29weVBhcnNlZEJsb2Nr
VGFnIHsgQ29weVBhcnNlZEJsb2NrIH07CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7
Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVl
ZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSwgU3Vic3BhY2VB
Y2Nlc3M+CiAgICAgc3RhdGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYpIHsgcmV0dXJu
IG51bGxwdHI7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3Jp
Z2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVP
cmlnaW4uaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVPcmlnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4MiwxMyArMjgyLDEzIEBAIGlu
bGluZSBib29sIENvZGVPcmlnaW46Om9wZXJhdG9yPT0oY29uc3QKIHN0cnVjdCBDb2RlT3JpZ2lu
SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgQ29kZU9yaWdpbiYga2V5KSB7
IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgQ29kZU9y
aWdpbiYgYSwgY29uc3QgQ29kZU9yaWdpbiYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3Rh
dGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRy
dWU7CiB9OwogCiBzdHJ1Y3QgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaCB7CiAgICAgc3RhdGlj
IHVuc2lnbmVkIGhhc2goY29uc3QgQ29kZU9yaWdpbiYga2V5KSB7IHJldHVybiBrZXkuYXBwcm94
aW1hdGVIYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBDb2RlT3JpZ2luJiBh
LCBjb25zdCBDb2RlT3JpZ2luJiBiKSB7IHJldHVybiBhLmlzQXBwcm94aW1hdGVseUVxdWFsVG8o
Yik7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRl
ZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5
T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpAQCAtMzAyLDcgKzMw
Miw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPEpTQzo6Q29kZU8KIAogdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEhhc2hUcmFpdHM7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNo
VHJhaXRzPEpTQzo6Q29kZU9yaWdpbj4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpDb2Rl
T3JpZ2luPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9ERkdFeGl0UHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTE0Niw3ICsxNDYsNyBAQCBwcml2YXRlOgogc3RydWN0IEZyZXF1ZW50RXhpdFNpdGVIYXNo
IHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBGcmVxdWVudEV4aXRTaXRlJiBrZXkp
IHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBGcmVx
dWVudEV4aXRTaXRlJiBhLCBjb25zdCBGcmVxdWVudEV4aXRTaXRlJiBiKSB7IHJldHVybiBhID09
IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRl
ZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5
T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EaXJlY3RFdmFsQ29kZUNhY2hlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RpcmVjdEV2YWxDb2Rl
Q2FjaGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0RpcmVjdEV2YWxDb2RlQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03NCw3ICs3NCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGxocyA9PSByaHM7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7
CisgICAgICAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0Vt
cHR5T3JEZWxldGVkID0gZmFsc2U7CiAgICAgICAgICAgICB9OwogCiAgICAgICAgICAgICB0eXBl
ZGVmIFNpbXBsZUNsYXNzSGFzaFRyYWl0czxDYWNoZUtleT4gSGFzaFRyYWl0czsKQEAgLTEwMiw3
ICsxMDIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBjbGVhcigpOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBtYXhDYWNoZUVudHJpZXMgPSA2NDsK
KyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgbWF4Q2FjaGVFbnRyaWVzID0gNjQ7CiAKICAg
ICAgICAgdm9pZCBzZXRTbG93KEV4ZWNTdGF0ZSosIEpTQ2VsbCogb3duZXIsIGNvbnN0IFN0cmlu
ZyYgZXZhbFNvdXJjZSwgQ2FsbFNpdGVJbmRleCwgRGlyZWN0RXZhbEV4ZWN1dGFibGUqKTsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGFibGVUb0NvZGVCbG9j
a0VkZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhl
Y3V0YWJsZVRvQ29kZUJsb2NrRWRnZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRnZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogY2xhc3Mg
RXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRnZSBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogcHVibGlj
OgogICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFs
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+CiAgICAgc3RhdGljIElzb1N1YnNwYWNlKiBz
dWJzcGFjZUZvcihWTSYgdm0pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
R2V0dGVyU2V0dGVyQWNjZXNzQ2FzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldHRlclNldHRlckFjY2Vzc0Nhc2UuY3BwCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0dGVyU2V0dGVyQWNjZXNz
Q2FzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE3LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw3ICszOSw3IEBACiBuYW1lc3BhY2UgSlND
IHsKIAogbmFtZXNwYWNlIEdldHRlclNldHRlckFjY2Vzc0Nhc2VJbnRlcm5hbCB7Ci1zdGF0aWMg
Y29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogfQogCiBHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlOjpHZXR0ZXJTZXR0ZXJBY2Nl
c3NDYXNlKFZNJiB2bSwgSlNDZWxsKiBvd25lciwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlLCBQcm9w
ZXJ0eU9mZnNldCBvZmZzZXQsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBPYmplY3RQcm9w
ZXJ0eUNvbmRpdGlvblNldCYgY29uZGl0aW9uU2V0LCBib29sIHZpYVByb3h5LCBXYXRjaHBvaW50
U2V0KiBhZGRpdGlvbmFsU2V0LCBKU09iamVjdCogY3VzdG9tU2xvdEJhc2UsIHN0ZDo6dW5pcXVl
X3B0cjxQb2x5UHJvdG9BY2Nlc3NDaGFpbj4gcHJvdG90eXBlQWNjZXNzQ2hhaW4pCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRW
YWx1ZVByb2ZpbGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0xhenlPcGVyYW5kVmFsdWVQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
OTksNyArOTksNyBAQCBzdHJ1Y3QgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXlIYXNoIHsKICAg
ICBzdGF0aWMgYm9vbCBlcXVhbCgKICAgICAgICAgY29uc3QgTGF6eU9wZXJhbmRWYWx1ZVByb2Zp
bGVLZXkmIGEsCiAgICAgICAgIGNvbnN0IExhenlPcGVyYW5kVmFsdWVQcm9maWxlS2V5JiBiKSB7
IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0Nv
bXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVj
dFByb3BlcnR5Q29uZGl0aW9uLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjY3LDcgKzI2Nyw3IEBAIHN0cnVjdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbkhhc2gg
ewogICAgIHsKICAgICAgICAgcmV0dXJuIGEgPT0gYjsKICAgICB9Ci0gICAgc3RhdGljIGNvbnN0
IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcAkocmV2
aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFBy
b3BlcnR5Q29uZGl0aW9uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4Myw3ICsxODMsNyBA
QCBib29sIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0Ojppc1ZhbGlkCiBuYW1lc3BhY2Ugewog
CiBuYW1lc3BhY2UgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXRJbnRlcm5hbCB7Ci1zdGF0aWMg
Y29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogfQogCiBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBnZW5lcmF0ZUNvbmRpdGlv
bigKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vz
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHlt
b3JwaGljQWNjZXNzLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ1
LDcgKzQ1LDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiBuYW1lc3BhY2UgUG9seW1vcnBoaWNBY2Nl
c3NJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMg
Y29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiB2b2lkIEFjY2Vzc0dlbmVyYXRp
b25SZXN1bHQ6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9wZXJ0eUNvbmRpdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9wZXJ0eUNvbmRpdGlvbi5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25k
aXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzMiw3ICszMzIsNyBAQCBzdHJ1Y3QgUHJvcGVy
dHlDb25kaXRpb25IYXNoIHsKICAgICB7CiAgICAgICAgIHJldHVybiBhID09IGI7CiAgICAgfQot
ICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1
ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSB0cnVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zOCw3OCArMzgsNzggQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBT
dHJ1Y3R1cmU7CiAKIHR5cGVkZWYgdWludDY0X3QgU3BlY3VsYXRlZFR5cGU7Ci1zdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDA7IC8vIFdlIGRvbid0IGtub3cgYW55dGhpbmcgeWV0Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNGaW5hbE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDA7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRmluYWxPYmplY3QuCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0FycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNBcnJheS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjRnVuY3Rpb25XaXRoRGVmYXVsdEhhc0luc3RhbmNlICAgID0gMXVsbCA8PCAyOyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBKU0Z1bmN0aW9uIHRoYXQgaGFzIGl0cyBJbXBsZW1lbnRzRGVm
YXVsdEhhc0luc3RhbmNlIHR5cGUgaW5mbyBmbGFncyBiaXQgc2V0Lgotc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNGdW5jdGlvbldpdGhOb25EZWZhdWx0SGFzSW5zdGFuY2UgPSAxdWxs
IDw8IDM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRnVuY3Rpb24gdGhhdCBkb2VzIG5vdCBoYXZl
IGl0cyBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlIHR5cGUgaW5mbyBmbGFncyBiaXQgc2V0
Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdW5jdGlvbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSBTcGVjRnVuY3Rpb25XaXRoRGVmYXVsdEhhc0luc3RhbmNlIHwgU3BlY0Z1
bmN0aW9uV2l0aE5vbkRlZmF1bHRIYXNJbnN0YW5jZTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNG
dW5jdGlvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50OEFycmF5ICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA0OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50
OEFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjSW50MTZBcnJheSAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA1OyAv
LyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MTZBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMu
Ci1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyQXJyYXkgICAgICAgICAgICAg
ICAgICAgICAgICA9IDF1bGwgPDwgNjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyQXJyYXkg
b3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNVaW50OEFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDc7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhbiBVaW50OEFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjVWludDhDbGFtcGVkQXJyYXkgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCA4OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDhDbGFtcGVkQXJyYXkg
b3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNVaW50MTZBcnJheSAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDk7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhbiBVaW50MTZBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1VpbnQzMkFycmF5ICAgICAgICAgICAgICAgICAg
ICAgICA9IDF1bGwgPDwgMTA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50MzJBcnJheSBvciBv
bmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Zs
b2F0MzJBcnJheSAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTE7IC8vIEl0J3MgZGVm
aW5pdGVseSBhbiBVaW50MTZBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Zsb2F0NjRBcnJheSAgICAgICAgICAgICAgICAgICAg
ICA9IDF1bGwgPDwgMTI7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50MTZBcnJheSBvciBvbmUg
b2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1R5cGVk
QXJyYXlWaWV3ICAgICAgICAgICAgICAgICAgICA9IFNwZWNJbnQ4QXJyYXkgfCBTcGVjSW50MTZB
cnJheSB8IFNwZWNJbnQzMkFycmF5IHwgU3BlY1VpbnQ4QXJyYXkgfCBTcGVjVWludDhDbGFtcGVk
QXJyYXkgfCBTcGVjVWludDE2QXJyYXkgfCBTcGVjVWludDMyQXJyYXkgfCBTcGVjRmxvYXQzMkFy
cmF5IHwgU3BlY0Zsb2F0NjRBcnJheTsKLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
RGlyZWN0QXJndW1lbnRzICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxMzsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgRGlyZWN0QXJndW1lbnRzIG9iamVjdC4KLXN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjU2NvcGVkQXJndW1lbnRzICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAx
NDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU2NvcGVkQXJndW1lbnRzIG9iamVjdC4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nT2JqZWN0ICAgICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCAxNTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU3RyaW5nT2JqZWN0Lgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNSZWdFeHBPYmplY3QgICAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDE2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBSZWdFeHBPYmplY3QgKGFuZCBu
b3QgYW55IHN1YmNsYXNzIG9mIFJlZ0V4cE9iamVjdCkuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY1Byb21pc2VPYmplY3QgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTc7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIFByb21pc2Ugb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xh
c3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTWFwT2JqZWN0ICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTWFwIG9i
amVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY1NldE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTk7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIFNldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgot
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNXZWFrTWFwT2JqZWN0ICAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBXZWFrTWFwIG9iamVj
dCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY1dlYWtTZXRPYmplY3QgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjE7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIFdlYWtTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4K
LXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAgICAgICAgICAg
ICAgICAgICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJveHkgb2JqZWN0
IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjRGVyaXZlZEFycmF5ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgRGVyaXZlZEFycmF5IG9iamVjdC4KLXN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjT2JqZWN0T3RoZXIgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAy
NDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpTRmluYWxPYmplY3QsIEpT
QXJyYXksIG9yIEpTRnVuY3Rpb24uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0
cmluZ0lkZW50ICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjU7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgotc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdWYXIgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDI2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3Mgbm90IGFu
IGlkZW50aWZpZXIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNTdHJpbmdJZGVudCB8IFNwZWNTdHJpbmdWYXI7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNTeW1ib2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI3OyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY0NlbGxPdGhlciAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjg7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QgYW5k
IGRlZmluaXRlbHkgbm90IGEgSlNTdHJpbmcsIEJpZ0ludCwgb3IgU3ltYm9sLgotc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDI5OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9y
IDEuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3
aXRoIHZhbHVlIG90aGVyIHRoYW4gMCBvciAxLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNJbnQzMk9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQm9vbEludDMyIHwg
U3BlY05vbkJvb2xJbnQzMjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyLgotCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyQXNJbnQ1MiAgICAgICAgICAgICAgICAgICAg
ICA9IDF1bGwgPDwgMzE7IC8vIEl0J3MgYW4gSW50NTIgYW5kIGl0IGNhbiBmaXQgaW4gYW4gaW50
MzIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludDMyQXNJbnQ1MiAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzI7IC8vIEl0J3MgYW4gSW50NTIgYW5kIGl0IGNhbid0
IGZpdCBpbiBhbiBpbnQzMi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50NTJB
bnkgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludDMyQXNJbnQ1MiB8IFNwZWNOb25J
bnQzMkFzSW50NTI7IC8vIEl0J3MgYW55IGtpbmQgb2YgSW50NTIuCi0KLXN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjQW55SW50QXNEb3VibGUgICAgICAgICAgICAgICAgICAgID0gMXVs
bCA8PCAzMzsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBpdCdzIGluc2lkZSBhIGRv
dWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50QXNEb3VibGUgICAg
ICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNDsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJ
bnQ1MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgotc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVSZWFsICAgICAgICAgICAgICAgICAgICAgICAg
PSBTcGVjTm9uSW50QXNEb3VibGUgfCBTcGVjQW55SW50QXNEb3VibGU7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIG5vbi1OYU4gZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNE
b3VibGVQdXJlTmFOICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM1OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBOYU4gdGhhdCBpcyBzYWZlIHRvIHRhZyAoaS5lLiBwdXJlKS4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFOICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZlIHRv
IHRhZyAoaS5lLiBpbXB1cmUpLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3Vi
bGVOYU4gICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRG91YmxlUHVyZU5hTiB8IFNwZWNE
b3VibGVJbXB1cmVOYU47IC8vIEl0J3MgZGVmaW5pdGVseSBzb21lIGtpbmQgb2YgTmFOLgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZURvdWJsZSAgICAgICAgICAgICAg
ICAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVQdXJlTmFOOyAvLyBJdCdzIGVpdGhl
ciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91YmxlLCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdCBpbXB1
cmUgTmFOLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsRG91YmxlICAgICAg
ICAgICAgICAgICAgICAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVOYU47IC8vIEl0
J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3VibGUuCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0J5dGVjb2RlUmVhbE51bWJlciAgICAgICAgICAgICAgICA9IFNwZWNJbnQz
Mk9ubHkgfCBTcGVjRG91YmxlUmVhbDsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3Vi
bGVSZWFsLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsUmVhbE51bWJlciAg
ICAgICAgICAgICAgICAgICAgPSBTcGVjSW50MzJPbmx5IHwgU3BlY0ludDUyQW55IHwgU3BlY0Rv
dWJsZVJlYWw7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91YmxlUmVhbCwgb3IgYW4g
SW50NTIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlTnVtYmVyICAg
ICAgICAgICAgICAgICAgICA9IFNwZWNJbnQzMk9ubHkgfCBTcGVjQnl0ZWNvZGVEb3VibGU7IC8v
IEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91YmxlLCBhbmQgdGhlIERvdWJsZSBjYW5ub3Qg
YmUgYW4gaW1wdXJlIE5hTi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50QW55
Rm9ybWF0ICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludDUyQW55IHwgU3BlY0ludDMyT25s
eSB8IFNwZWNBbnlJbnRBc0RvdWJsZTsKLQotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNGdWxsTnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjSW50QW55Rm9ybWF0IHwg
U3BlY0Z1bGxEb3VibGU7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyLCBJbnQ1Miwgb3IgYSBEb3Vi
bGUsIGFuZCB0aGUgRG91YmxlIGNhbiBiZSBpbXB1cmUgTmFOLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNCb29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8
IDM3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM4
OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVkLgotc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNaXNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBhIGJv
b2xlYW4sIE51bGwsIG9yIFVuZGVmaW5lZC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjRW1wdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzOTsgLy8gSXQn
cyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KLXN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjQmlnSW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA0
MDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQmlnSW50Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNEYXRhVmlld09iamVjdCAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDQxOyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBKU0RhdGFWaWV3Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNQcmltaXRpdmUgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjU3RyaW5nIHwg
U3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjIHwgU3BlY0JpZ0ludDsg
Ly8gSXQncyBhbnkgbm9uLU9iamVjdCBKU1ZhbHVlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNPYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRmluYWxPYmpl
Y3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJheVZpZXcgfCBTcGVj
RGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdPYmplY3Qg
fCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY1Byb21pc2VPYmplY3QgfCBTcGVjTWFwT2JqZWN0IHwg
U3BlY1NldE9iamVjdCB8IFNwZWNXZWFrTWFwT2JqZWN0IHwgU3BlY1dlYWtTZXRPYmplY3QgfCBT
cGVjUHJveHlPYmplY3QgfCBTcGVjRGVyaXZlZEFycmF5IHwgU3BlY09iamVjdE90aGVyIHwgU3Bl
Y0RhdGFWaWV3T2JqZWN0OyAvLyBCaXRtYXNrIHVzZWQgZm9yIHRlc3RpbmcgZm9yIGFueSBraW5k
IG9mIG9iamVjdCBwcmVkaWN0aW9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWND
ZWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjT2JqZWN0IHwgU3BlY1N0cmlu
ZyB8IFNwZWNTeW1ib2wgfCBTcGVjQ2VsbE90aGVyIHwgU3BlY0JpZ0ludDsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgSlNDZWxsLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwVG9w
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQ2VsbCB8IFNwZWNCeXRlY29kZU51bWJl
ciB8IFNwZWNNaXNjOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBT
cGVjSW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFOLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNCeXRlY29kZVRvcCAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjSGVh
cFRvcCB8IFNwZWNFbXB0eTsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJvdmUsIGV4Y2VwdCBm
b3IgU3BlY0ludDUyT25seSBhbmQgU3BlY0RvdWJsZUltcHVyZU5hTi4gQ29ycmVzcG9uZHMgdG8g
d2hhdCBjb3VsZCBiZSBmb3VuZCBpbiBhIGJ5dGVjb2RlIGxvY2FsLgotc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNGdWxsVG9wICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVj
Qnl0ZWNvZGVUb3AgfCBTcGVjRnVsbE51bWJlcjsgLy8gSXQgY2FuIGJlIGFueXRoaW5nIHRoYXQg
Ynl0ZWNvZGUgY291bGQgc2VlIHBsdXMgZXhvdGljIGVuY29kaW5ncyBvZiBudW1iZXJzLgorc3Rh
dGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMDsgLy8gV2UgZG9uJ3Qga25vdyBhbnl0aGluZyB5ZXQuCitzdGF0aWMgY29u
c3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNGaW5hbE9iamVjdCAgICAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRmluYWxPYmplY3QuCitzdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNBcnJheSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQXJyYXkuCitzdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNGdW5jdGlvbldpdGhEZWZhdWx0SGFzSW5z
dGFuY2UgICAgPSAxdWxsIDw8IDI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRnVuY3Rpb24gdGhh
dCBoYXMgaXRzIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgdHlwZSBpbmZvIGZsYWdzIGJp
dCBzZXQuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNGdW5jdGlvbldpdGhO
b25EZWZhdWx0SGFzSW5zdGFuY2UgPSAxdWxsIDw8IDM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpT
RnVuY3Rpb24gdGhhdCBkb2VzIG5vdCBoYXZlIGl0cyBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3Rh
bmNlIHR5cGUgaW5mbyBmbGFncyBiaXQgc2V0Lgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjRnVuY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0Z1bmN0aW9u
V2l0aERlZmF1bHRIYXNJbnN0YW5jZSB8IFNwZWNGdW5jdGlvbldpdGhOb25EZWZhdWx0SGFzSW5z
dGFuY2U7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRnVuY3Rpb24uCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQ4QXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ4QXJyYXkgb3Igb25lIG9mIGl0cyBz
dWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50MTZBcnJh
eSAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA1OyAvLyBJdCdzIGRlZmluaXRlbHkg
YW4gSW50MTZBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMkFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDY7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMkFycmF5IG9yIG9uZSBvZiBpdHMg
c3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1VpbnQ4QXJy
YXkgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNzsgLy8gSXQncyBkZWZpbml0ZWx5
IGFuIFVpbnQ4QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjVWludDhDbGFtcGVkQXJyYXkgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCA4OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDhDbGFtcGVkQXJyYXkgb3Igb25l
IG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVj
VWludDE2QXJyYXkgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA5OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGlj
IGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjVWludDMyQXJyYXkgICAgICAgICAgICAgICAg
ICAgICAgID0gMXVsbCA8PCAxMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQzMkFycmF5IG9y
IG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY0Zsb2F0MzJBcnJheSAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTE7IC8vIEl0
J3MgZGVmaW5pdGVseSBhbiBVaW50MTZBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitz
dGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNGbG9hdDY0QXJyYXkgICAgICAgICAg
ICAgICAgICAgICAgPSAxdWxsIDw8IDEyOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2QXJy
YXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjVHlwZWRBcnJheVZpZXcgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludDhBcnJh
eSB8IFNwZWNJbnQxNkFycmF5IHwgU3BlY0ludDMyQXJyYXkgfCBTcGVjVWludDhBcnJheSB8IFNw
ZWNVaW50OENsYW1wZWRBcnJheSB8IFNwZWNVaW50MTZBcnJheSB8IFNwZWNVaW50MzJBcnJheSB8
IFNwZWNGbG9hdDMyQXJyYXkgfCBTcGVjRmxvYXQ2NEFycmF5Oworc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjRGlyZWN0QXJndW1lbnRzICAgICAgICAgICAgICAgICAgID0gMXVs
bCA8PCAxMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGlyZWN0QXJndW1lbnRzIG9iamVjdC4KK3N0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1Njb3BlZEFyZ3VtZW50cyAgICAgICAg
ICAgICAgICAgICA9IDF1bGwgPDwgMTQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNjb3BlZEFyZ3Vt
ZW50cyBvYmplY3QuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdP
YmplY3QgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE1OyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBTdHJpbmdPYmplY3QuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNS
ZWdFeHBPYmplY3QgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE2OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBSZWdFeHBPYmplY3QgKGFuZCBub3QgYW55IHN1YmNsYXNzIG9mIFJlZ0V4cE9i
amVjdCkuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm9taXNlT2JqZWN0
ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQ
cm9taXNlIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDE4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9yIG9uZSBvZiBpdHMg
c3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1NldE9iamVj
dCAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTk7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIFNldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha01hcE9iamVjdCAgICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCAyMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha01hcCBvYmplY3Qgb3Igb25lIG9m
IGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vh
a1NldE9iamVjdCAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMTsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgV2Vha1NldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGlj
IGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAgICAgICAgICAgICAg
ICAgICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJveHkgb2JqZWN0IG9y
IG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY0Rlcml2ZWRBcnJheSAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjM7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIERlcml2ZWRBcnJheSBvYmplY3QuCitzdGF0aWMgY29uc3RleHByIFNw
ZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxs
IDw8IDI0OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNGaW5hbE9iamVj
dCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjU7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgorc3Rh
dGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMXVsbCA8PCAyNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFu
ZCBpdCdzIG5vdCBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlw
ZSBTcGVjU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY1N0cmluZ0lkZW50
IHwgU3BlY1N0cmluZ1ZhcjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcuCitzdGF0aWMg
Y29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxdWxsIDw8IDI3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCitzdGF0aWMg
Y29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsT3RoZXIgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxdWxsIDw8IDI4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwgYnV0IG5vdCBh
IHN1YmNsYXNzIG9mIEpTT2JqZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpTU3RyaW5nLCBCaWdJ
bnQsIG9yIFN5bWJvbC4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xJ
bnQzMiAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjk7IC8vIEl0J3MgZGVmaW5p
dGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIDAgb3IgMS4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MzA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90aGVyIHRoYW4gMCBv
ciAxLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50MzJPbmx5ICAgICAg
ICAgICAgICAgICAgICAgICAgID0gU3BlY0Jvb2xJbnQzMiB8IFNwZWNOb25Cb29sSW50MzI7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMi4KKworc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjSW50MzJBc0ludDUyICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzMTsg
Ly8gSXQncyBhbiBJbnQ1MiBhbmQgaXQgY2FuIGZpdCBpbiBhbiBpbnQzMi4KK3N0YXRpYyBjb25z
dGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludDMyQXNJbnQ1MiAgICAgICAgICAgICAgICAg
ICA9IDF1bGwgPDwgMzI7IC8vIEl0J3MgYW4gSW50NTIgYW5kIGl0IGNhbid0IGZpdCBpbiBhbiBp
bnQzMi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDUyQW55ICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IFNwZWNJbnQzMkFzSW50NTIgfCBTcGVjTm9uSW50MzJBc0lu
dDUyOyAvLyBJdCdzIGFueSBraW5kIG9mIEludDUyLgorCitzdGF0aWMgY29uc3RleHByIFNwZWN1
bGF0ZWRUeXBlIFNwZWNBbnlJbnRBc0RvdWJsZSAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8
IDMzOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIGl0J3MgaW5zaWRlIGEgZG91Ymxl
Lgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50QXNEb3VibGUgICAg
ICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNDsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJ
bnQ1MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgorc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUmVhbCAgICAgICAgICAgICAgICAgICAg
ICAgID0gU3BlY05vbkludEFzRG91YmxlIHwgU3BlY0FueUludEFzRG91YmxlOyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBub24tTmFOIGRvdWJsZS4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY0RvdWJsZVB1cmVOYU4gICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzU7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHNhZmUgdG8gdGFnIChpLmUuIHB1cmUpLgor
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFOICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQg
aXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxh
dGVkVHlwZSBTcGVjRG91YmxlTmFOICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0RvdWJs
ZVB1cmVOYU4gfCBTcGVjRG91YmxlSW1wdXJlTmFOOyAvLyBJdCdzIGRlZmluaXRlbHkgc29tZSBr
aW5kIG9mIE5hTi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2Rl
RG91YmxlICAgICAgICAgICAgICAgICAgICA9IFNwZWNEb3VibGVSZWFsIHwgU3BlY0RvdWJsZVB1
cmVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3VibGUsIGJ1dCBpdCdz
IGRlZmluaXRlbHkgbm90IGltcHVyZSBOYU4uCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRU
eXBlIFNwZWNGdWxsRG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRG91YmxlUmVh
bCB8IFNwZWNEb3VibGVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3Vi
bGUuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZVJlYWxOdW1i
ZXIgICAgICAgICAgICAgICAgPSBTcGVjSW50MzJPbmx5IHwgU3BlY0RvdWJsZVJlYWw7IC8vIEl0
J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91YmxlUmVhbC4KK3N0YXRpYyBjb25zdGV4cHIgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0Z1bGxSZWFsTnVtYmVyICAgICAgICAgICAgICAgICAgICA9IFNwZWNJ
bnQzMk9ubHkgfCBTcGVjSW50NTJBbnkgfCBTcGVjRG91YmxlUmVhbDsgLy8gSXQncyBlaXRoZXIg
YW4gSW50MzIgb3IgYSBEb3VibGVSZWFsLCBvciBhbiBJbnQ1Mi4KK3N0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlTnVtYmVyICAgICAgICAgICAgICAgICAgICA9IFNw
ZWNJbnQzMk9ubHkgfCBTcGVjQnl0ZWNvZGVEb3VibGU7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMy
IG9yIGEgRG91YmxlLCBhbmQgdGhlIERvdWJsZSBjYW5ub3QgYmUgYW4gaW1wdXJlIE5hTi4KK3N0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0ludEFueUZvcm1hdCAgICAgICAgICAg
ICAgICAgICAgICA9IFNwZWNJbnQ1MkFueSB8IFNwZWNJbnQzMk9ubHkgfCBTcGVjQW55SW50QXNE
b3VibGU7CisKK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxOdW1iZXIg
ICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNJbnRBbnlGb3JtYXQgfCBTcGVjRnVsbERvdWJs
ZTsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIsIEludDUyLCBvciBhIERvdWJsZSwgYW5kIHRoZSBE
b3VibGUgY2FuIGJlIGltcHVyZSBOYU4uCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBl
IFNwZWNCb29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM3OyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlw
ZSBTcGVjT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzODsgLy8g
SXQncyBkZWZpbml0ZWx5IGVpdGhlciBOdWxsIG9yIFVuZGVmaW5lZC4KK3N0YXRpYyBjb25zdGV4
cHIgU3BlY3VsYXRlZFR5cGUgU3BlY01pc2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IFNwZWNCb29sZWFuIHwgU3BlY090aGVyOyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIGEgYm9v
bGVhbiwgTnVsbCwgb3IgVW5kZWZpbmVkLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlw
ZSBTcGVjRW1wdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzOTsgLy8g
SXQncyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KK3N0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY0JpZ0ludCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgNDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJpZ0ludC4KK3N0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY0RhdGFWaWV3T2JqZWN0ICAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgNDE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRGF0YVZpZXcuCitzdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQcmltaXRpdmUgICAgICAgICAgICAgICAgICAgICAgICAg
PSBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNj
IHwgU3BlY0JpZ0ludDsgLy8gSXQncyBhbnkgbm9uLU9iamVjdCBKU1ZhbHVlLgorc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gU3BlY0ZpbmFsT2JqZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1bmN0aW9uIHwgU3BlY1R5
cGVkQXJyYXlWaWV3IHwgU3BlY0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNTY29wZWRBcmd1bWVudHMg
fCBTcGVjU3RyaW5nT2JqZWN0IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNwZWNQcm9taXNlT2JqZWN0
IHwgU3BlY01hcE9iamVjdCB8IFNwZWNTZXRPYmplY3QgfCBTcGVjV2Vha01hcE9iamVjdCB8IFNw
ZWNXZWFrU2V0T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNw
ZWNPYmplY3RPdGhlciB8IFNwZWNEYXRhVmlld09iamVjdDsgLy8gQml0bWFzayB1c2VkIGZvciB0
ZXN0aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KK3N0YXRpYyBjb25zdGV4
cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IFNwZWNPYmplY3QgfCBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNDZWxsT3RoZXIgfCBT
cGVjQmlnSW50OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwuCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwVG9wICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBT
cGVjQ2VsbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJdCBjYW4gYmUgYW55
IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1w
dXJlTmFOLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVUb3Ag
ICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0hlYXBUb3AgfCBTcGVjRW1wdHk7IC8vIEl0IGNh
biBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJbnQ1Mk9ubHkgYW5kIFNwZWNE
b3VibGVJbXB1cmVOYU4uIENvcnJlc3BvbmRzIHRvIHdoYXQgY291bGQgYmUgZm91bmQgaW4gYSBi
eXRlY29kZSBsb2NhbC4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxU
b3AgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNCeXRlY29kZVRvcCB8IFNwZWNGdWxs
TnVtYmVyOyAvLyBJdCBjYW4gYmUgYW55dGhpbmcgdGhhdCBieXRlY29kZSBjb3VsZCBzZWUgcGx1
cyBleG90aWMgZW5jb2RpbmdzIG9mIG51bWJlcnMuCiAKIC8vIFNwZWNDZWxsQ2hlY2sgaXMgdGhl
IHR5cGUgc2V0IHJlcHJlc2VudGluZyB0aGUgdmFsdWVzIHRoYXQgY2FuIGZsb3cgdGhyb3VnaCBh
IGNlbGwgY2hlY2suCiAvLyBPbiA2NC1iaXQgcGxhdGZvcm1zLCB0aGUgZW1wdHkgdmFsdWUgcGFz
c2VzIGEgY2VsbCBjaGVjay4gQWxzbywgflNwZWNDZWxsQ2hlY2sgaXMgdGhlIHR5cGUKIC8vIHNl
dCB0aGF0IHJlcHJlc2VudGluZyB0aGUgdmFsdWVzIHRoYXQgZmxvdyB0aHJvdWdoIHdoZW4gdGVz
dGluZyB0aGF0IHNvbWV0aGluZyBpcyBub3QgYSBjZWxsLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNDZWxsQ2hlY2sgICAgICAgICAgPSBpczY0Qml0KCkgPyAoU3BlY0NlbGwgfCBT
cGVjRW1wdHkpIDogU3BlY0NlbGw7CitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNw
ZWNDZWxsQ2hlY2sgICAgICAgICAgPSBpczY0Qml0KCkgPyAoU3BlY0NlbGwgfCBTcGVjRW1wdHkp
IDogU3BlY0NlbGw7CiAKIHR5cGVkZWYgYm9vbCAoKlNwZWN1bGF0ZWRUeXBlQ2hlY2tlcikoU3Bl
Y3VsYXRlZFR5cGUpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3Ry
dWN0dXJlU3R1YkluZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKEpJVCkK
IAogbmFtZXNwYWNlIFN0cnVjdHVyZVN0dWJJbmZvSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJv
b2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKIH0KIAogU3RydWN0dXJlU3R1YkluZm86OlN0cnVjdHVyZVN0dWJJbmZvKEFjY2Vzc1R5cGUg
YWNjZXNzVHlwZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxpbmtl
ZENvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjcxLDcgKzI3MSw3IEBAIHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6OmFkZEV4cHJlc3Np
b25JbmYKIAogYm9vbCBVbmxpbmtlZENvZGVCbG9jazo6dHlwZVByb2ZpbGVyRXhwcmVzc2lvbklu
Zm9Gb3JCeXRlY29kZU9mZnNldCh1bnNpZ25lZCBieXRlY29kZU9mZnNldCwgdW5zaWduZWQmIHN0
YXJ0RGl2b3QsIHVuc2lnbmVkJiBlbmREaXZvdCkKIHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKICAgICBpZiAoIW1fcmFyZURhdGEpIHsKICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAg
ICAgICBkYXRhTG9nRigiRG9uJ3QgaGF2ZSBhc3NpZ25tZW50IGluZm8gZm9yIG9mZnNldDoldVxu
IiwgYnl0ZWNvZGVPZmZzZXQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1VubGlua2VkQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDksOSArMTA5LDkgQEAgc3RydWN0IFVubGlua2VkU2ltcGxlSnVtcFRhYmxlIHsK
IGNsYXNzIFVubGlua2VkQ29kZUJsb2NrIDogcHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKLSAgICBzdGF0aWMg
Y29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAKICAgICBlbnVtIHsgQ2FsbEZ1bmN0aW9u
LCBBcHBseUZ1bmN0aW9uIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9VbmxpbmtlZEV2YWxDb2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvVW5saW5rZWRFdmFsQ29kZUJsb2NrLmgJKHJldmlzaW9uIDI0OTk3NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEV2YWxDb2RlQmxvY2su
aAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBDYWNoZWRFdmFsQ29kZUJs
b2NrOwogY2xhc3MgVW5saW5rZWRFdmFsQ29kZUJsb2NrIGZpbmFsIDogcHVibGljIFVubGlua2Vk
R2xvYmFsQ29kZUJsb2NrIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFVubGlua2VkR2xvYmFsQ29k
ZUJsb2NrIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICBzdGF0aWMgVW5saW5rZWRFdmFsQ29kZUJsb2Nr
KiBjcmVhdGUoVk0mIHZtLCBjb25zdCBFeGVjdXRhYmxlSW5mbyYgaW5mbywgT3B0aW9uU2V0PENv
ZGVHZW5lcmF0aW9uTW9kZT4gY29kZUdlbmVyYXRpb25Nb2RlKQogICAgIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rp
b25Db2RlQmxvY2suaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAt
MzQsNyArMzQsNyBAQCBjbGFzcyBDYWNoZWRGdW5jdGlvbkNvZGVCbG9jazsKIGNsYXNzIFVubGlu
a2VkRnVuY3Rpb25Db2RlQmxvY2sgZmluYWwgOiBwdWJsaWMgVW5saW5rZWRDb2RlQmxvY2sgewog
cHVibGljOgogICAgIHR5cGVkZWYgVW5saW5rZWRDb2RlQmxvY2sgQmFzZTsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0
cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAog
ICAgIHN0YXRpYyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBjcmVhdGUoVk0mIHZtLCBDb2Rl
VHlwZSBjb2RlVHlwZSwgY29uc3QgRXhlY3V0YWJsZUluZm8mIGluZm8sIE9wdGlvblNldDxDb2Rl
R2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSkKICAgICB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIGZyaWVuZCBjbGFzcyBDYWNoZWRGdW5jdGlvbkV4
ZWN1dGFibGU7CiAKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJl
SXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgogICAgIHN0YXRpYyBJc29T
dWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQpAQCAtMTQyLDcgKzE0Miw3IEBAIHB1YmxpYzoK
ICAgICBDb2RlRmVhdHVyZXMgZmVhdHVyZXMoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1cmVzOyB9
CiAgICAgYm9vbCBoYXNDYXB0dXJlZFZhcmlhYmxlcygpIGNvbnN0IHsgcmV0dXJuIG1faGFzQ2Fw
dHVyZWRWYXJpYWJsZXM7IH0KIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rp
b24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0g
dHJ1ZTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCiAgICAgYm9vbCBpc0J1
aWx0aW5GdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faXNCdWlsdGluRnVuY3Rpb247IH0KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZE1vZHVsZVByb2dyYW1D
b2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxv
Y2suaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBDYWNoZWRNb2R1bGVD
b2RlQmxvY2s7CiBjbGFzcyBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sgZmluYWwgOiBw
dWJsaWMgVW5saW5rZWRHbG9iYWxDb2RlQmxvY2sgewogcHVibGljOgogICAgIHR5cGVkZWYgVW5s
aW5rZWRHbG9iYWxDb2RlQmxvY2sgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAogICAgIHN0YXRpYyBVbmxpbmtl
ZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIGNyZWF0ZShWTSYgdm0sIGNvbnN0IEV4ZWN1dGFibGVJ
bmZvJiBpbmZvLCBPcHRpb25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1v
ZGUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
UHJvZ3JhbUNvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9VbmxpbmtlZFByb2dyYW1Db2RlQmxvY2suaAkocmV2aXNpb24gMjQ5OTc2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkUHJvZ3JhbUNvZGVCbG9jay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIENhY2hlZFByb2dyYW1Db2Rl
QmxvY2s7CiBjbGFzcyBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sgZmluYWwgOiBwdWJsaWMgVW5s
aW5rZWRHbG9iYWxDb2RlQmxvY2sgewogcHVibGljOgogICAgIHR5cGVkZWYgVW5saW5rZWRHbG9i
YWxDb2RlQmxvY2sgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAogICAgIHN0YXRpYyBVbmxpbmtlZFByb2dyYW1D
b2RlQmxvY2sqIGNyZWF0ZShWTSYgdm0sIGNvbnN0IEV4ZWN1dGFibGVJbmZvJiBpbmZvLCBPcHRp
b25TZXQ8Q29kZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUpCiAgICAgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJvZmlsZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkocmV2
aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUHJv
ZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMS0yMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsMTAgKzM4LDEwIEBAIG5hbWVzcGFj
ZSBKU0MgewogCiB0ZW1wbGF0ZTx1bnNpZ25lZCBudW1iZXJPZkJ1Y2tldHNBcmd1bWVudD4KIHN0
cnVjdCBWYWx1ZVByb2ZpbGVCYXNlIHsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVy
T2ZCdWNrZXRzID0gbnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ7Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIG51bWJlck9mU3BlY0ZhaWxCdWNrZXRzID0gMTsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgYnVja2V0SW5kZXhNYXNrID0gbnVtYmVyT2ZCdWNrZXRzIC0gMTsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgdG90YWxOdW1iZXJPZkJ1Y2tldHMgPSBudW1iZXJPZkJ1Y2tldHMgKyBu
dW1iZXJPZlNwZWNGYWlsQnVja2V0czsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51
bWJlck9mQnVja2V0cyA9IG51bWJlck9mQnVja2V0c0FyZ3VtZW50OworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZTcGVjRmFpbEJ1Y2tldHMgPSAxOworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgYnVja2V0SW5kZXhNYXNrID0gbnVtYmVyT2ZCdWNrZXRzIC0gMTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHRvdGFsTnVtYmVyT2ZCdWNrZXRzID0gbnVt
YmVyT2ZCdWNrZXRzICsgbnVtYmVyT2ZTcGVjRmFpbEJ1Y2tldHM7CiAgICAgCiAgICAgVmFsdWVQ
cm9maWxlQmFzZSgpCiAgICAgewpAQCAtMTQ2LDcgKzE0Niw3IEBAIHN0cnVjdCBNaW5pbWFsVmFs
dWVQcm9maWxlIDogcHVibGljIFZhbHUKIAogdGVtcGxhdGU8dW5zaWduZWQgbG9nTnVtYmVyT2ZC
dWNrZXRzQXJndW1lbnQ+CiBzdHJ1Y3QgVmFsdWVQcm9maWxlV2l0aExvZ051bWJlck9mQnVja2V0
cyA6IHB1YmxpYyBWYWx1ZVByb2ZpbGVCYXNlPDEgPDwgbG9nTnVtYmVyT2ZCdWNrZXRzQXJndW1l
bnQ+IHsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9nTnVtYmVyT2ZCdWNrZXRzID0gbG9n
TnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBs
b2dOdW1iZXJPZkJ1Y2tldHMgPSBsb2dOdW1iZXJPZkJ1Y2tldHNBcmd1bWVudDsKICAgICAKICAg
ICBWYWx1ZVByb2ZpbGVXaXRoTG9nTnVtYmVyT2ZCdWNrZXRzKCkKICAgICAgICAgOiBWYWx1ZVBy
b2ZpbGVCYXNlPDEgPDwgbG9nTnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ+KCkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmgJKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WaXJ0dWFsUmVn
aXN0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEsIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwNSw4ICsxMDUsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0OwogCiBwcml2YXRlOgotICAg
IHN0YXRpYyBjb25zdCBpbnQgc19pbnZhbGlkVmlydHVhbFJlZ2lzdGVyID0gMHgzZmZmZmZmZjsK
LSAgICBzdGF0aWMgY29uc3QgaW50IHNfZmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXggPSBGaXJz
dENvbnN0YW50UmVnaXN0ZXJJbmRleDsKKyAgICBzdGF0aWMgY29uc3RleHByIGludCBzX2ludmFs
aWRWaXJ0dWFsUmVnaXN0ZXIgPSAweDNmZmZmZmZmOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50
IHNfZmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXggPSBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRl
eDsKIAogICAgIHN0YXRpYyBpbnQgbG9jYWxUb09wZXJhbmQoaW50IGxvY2FsKSB7IHJldHVybiAt
MSAtIGxvY2FsOyB9CiAgICAgc3RhdGljIGludCBvcGVyYW5kVG9Mb2NhbChpbnQgb3BlcmFuZCkg
eyByZXR1cm4gLTEgLSBvcGVyYW5kOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvV2F0Y2hwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9XYXRjaHBvaW50LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NzUsOSAr
NDc1LDkgQEAgcHVibGljOgogICAgIH0KICAgICAKIHByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0
IHVpbnRwdHJfdCBJc1RoaW5GbGFnICAgICAgICA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnRw
dHJfdCBTdGF0ZU1hc2sgICAgICAgICA9IDY7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnRwdHJfdCBT
dGF0ZVNoaWZ0ICAgICAgICA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgSXNU
aGluRmxhZyAgICAgICAgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IFN0YXRl
TWFzayAgICAgICAgID0gNjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBTdGF0ZVNo
aWZ0ICAgICAgICA9IDE7CiAgICAgCiAgICAgc3RhdGljIGJvb2wgaXNUaGluKHVpbnRwdHJfdCBk
YXRhKSB7IHJldHVybiBkYXRhICYgSXNUaGluRmxhZzsgfQogICAgIHN0YXRpYyBib29sIGlzRmF0
KHVpbnRwdHJfdCBkYXRhKSB7IHJldHVybiAhaXNUaGluKGRhdGEpOyB9CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTg5Nyw4ICs4OTcsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0T3V0T2ZMaW5lRmluYWxseUhhbmRs
ZXIoUmVnaXN0ZXJJRCogZXhjZXB0aW9uUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGNvbXBsZXRpb25U
eXBlUmVnaXN0ZXIsIFRyeURhdGEqKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRpYyBj
b25zdCBpbnQgQ3VycmVudExleGljYWxTY29wZUluZGV4ID0gLTI7Ci0gICAgICAgIHN0YXRpYyBj
b25zdCBpbnQgT3V0ZXJtb3N0TGV4aWNhbFNjb3BlSW5kZXggPSAtMTsKKyAgICAgICAgc3RhdGlj
IGNvbnN0ZXhwciBpbnQgQ3VycmVudExleGljYWxTY29wZUluZGV4ID0gLTI7CisgICAgICAgIHN0
YXRpYyBjb25zdGV4cHIgaW50IE91dGVybW9zdExleGljYWxTY29wZUluZGV4ID0gLTE7CiAKICAg
ICAgICAgaW50IGN1cnJlbnRMZXhpY2FsU2NvcGVJbmRleCgpIGNvbnN0CiAgICAgICAgIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTGFiZWwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0xhYmVsLmgJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTGFiZWwuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0xMzMsNyArMTMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
dHlwZWRlZiBWZWN0b3I8aW50LCA4PiBKdW1wVmVjdG9yOwogCi0gICAgICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBpbnZhbGlkTG9jYXRpb24gPSBVSU5UX01BWDsKKyAgICAgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBpbnZhbGlkTG9jYXRpb24gPSBVSU5UX01BWDsKIAogICAgICAgICBp
bnQgbV9yZWZDb3VudCB7IDAgfTsKICAgICAgICAgdW5zaWduZWQgbV9sb2NhdGlvbiB7IGludmFs
aWRMb2NhdGlvbiB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNjUsNyArMTY1LDcgQEAgUmVnaXN0ZXJJRCogVGhpc05vZGU6OmVtaXRCeXRlY29kZShC
eXRlYwogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZ2lzdGVySUQqIHJlc3VsdCA9IGdlbmVy
YXRvci5tb3ZlKGRzdCwgZ2VuZXJhdG9yLnRoaXNSZWdpc3RlcigpKTsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgdGhpc0xlbmd0aCA9IDQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCB0aGlzTGVuZ3RoID0gNDsKICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKGdlbmVyYXRv
ci50aGlzUmVnaXN0ZXIoKSwgcG9zaXRpb24oKSwgSlNUZXh0UG9zaXRpb24oLTEsIHBvc2l0aW9u
KCkub2Zmc2V0ICsgdGhpc0xlbmd0aCwgLTEpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9SZWdpc3RlcklELmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9SZWdpc3RlcklELmgJ
KHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
UmVnaXN0ZXJJRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyOSw4ICsxMjksOCBAQCBuYW1lc3BhY2UgSlND
IHsKIG5hbWVzcGFjZSBXVEYgewogCiAgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgVmVjdG9yVHJhaXRz
PEpTQzo6UmVnaXN0ZXJJRD4gOiBWZWN0b3JUcmFpdHNCYXNlPHRydWUsIEpTQzo6UmVnaXN0ZXJJ
RD4gewotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0luaXRpYWxpemF0aW9uID0gdHJ1
ZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSB0
cnVlOyAvLyBEZWZhdWx0IGluaXRpYWxpemF0aW9uIGp1c3Qgc2V0cyBldmVyeXRoaW5nIHRvIDAg
b3IgZmFsc2UsIHNvIHRoaXMgaXMgc2FmZS4KKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IG5lZWRzSW5pdGlhbGl6YXRpb24gPSB0cnVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSB0cnVlOyAvLyBEZWZhdWx0IGluaXRpYWxpemF0
aW9uIGp1c3Qgc2V0cyBldmVyeXRoaW5nIHRvIDAgb3IgZmFsc2UsIHNvIHRoaXMgaXMgc2FmZS4K
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9CcmVha3BvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0JyZWFrcG9pbnQuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0JyZWFrcG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Nyw3ICs1
Nyw3IEBAIHN0cnVjdCBCcmVha3BvaW50IDogcHVibGljIERvdWJseUxpbmtlZEwKICAgICB1bnNp
Z25lZCBoaXRDb3VudCB7IDAgfTsKICAgICBib29sIHJlc29sdmVkIHsgZmFsc2UgfTsKIAotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB1bnNwZWNpZmllZENvbHVtbiA9IFVJTlRfTUFYOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgdW5zcGVjaWZpZWRDb2x1bW4gPSBVSU5UX01BWDsK
IAogcHJpdmF0ZToKICAgICBCcmVha3BvaW50KiBtX3ByZXY7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJzZURhdGEuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5jcHAJKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclBh
cnNlRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMywxNiArMTMzLDE2IEBAIHRlbXBsYXRl
IDxEZWJ1Z2dlclBhcnNlSW5mb1RhZyBUPiBzdHJ1Y3QKIAogdGVtcGxhdGUgPD4gc3RydWN0IERl
YnVnZ2VyUGFyc2VJbmZvPFByb2dyYW0+IHsKICAgICB0eXBlZGVmIEpTQzo6UHJvZ3JhbU5vZGUg
Um9vdE5vZGU7Ci0gICAgc3RhdGljIGNvbnN0IFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUgPSBT
b3VyY2VQYXJzZU1vZGU6OlByb2dyYW1Nb2RlOwotICAgIHN0YXRpYyBjb25zdCBKU1BhcnNlclN0
cmljdE1vZGUgc3RyaWN0TW9kZSA9IEpTUGFyc2VyU3RyaWN0TW9kZTo6Tm90U3RyaWN0OwotICAg
IHN0YXRpYyBjb25zdCBKU1BhcnNlclNjcmlwdE1vZGUgc2NyaXB0TW9kZSA9IEpTUGFyc2VyU2Ny
aXB0TW9kZTo6Q2xhc3NpYzsKKyAgICBzdGF0aWMgY29uc3RleHByIFNvdXJjZVBhcnNlTW9kZSBw
YXJzZU1vZGUgPSBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1Nb2RlOworICAgIHN0YXRpYyBjb25z
dGV4cHIgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUgPSBKU1BhcnNlclN0cmljdE1vZGU6
Ok5vdFN0cmljdDsKKyAgICBzdGF0aWMgY29uc3RleHByIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3Jp
cHRNb2RlID0gSlNQYXJzZXJTY3JpcHRNb2RlOjpDbGFzc2ljOwogfTsKIAogdGVtcGxhdGUgPD4g
c3RydWN0IERlYnVnZ2VyUGFyc2VJbmZvPE1vZHVsZT4gewogICAgIHR5cGVkZWYgSlNDOjpNb2R1
bGVQcm9ncmFtTm9kZSBSb290Tm9kZTsKLSAgICBzdGF0aWMgY29uc3QgU291cmNlUGFyc2VNb2Rl
IHBhcnNlTW9kZSA9IFNvdXJjZVBhcnNlTW9kZTo6TW9kdWxlRXZhbHVhdGVNb2RlOwotICAgIHN0
YXRpYyBjb25zdCBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSA9IEpTUGFyc2VyU3RyaWN0
TW9kZTo6U3RyaWN0OwotICAgIHN0YXRpYyBjb25zdCBKU1BhcnNlclNjcmlwdE1vZGUgc2NyaXB0
TW9kZSA9IEpTUGFyc2VyU2NyaXB0TW9kZTo6TW9kdWxlOworICAgIHN0YXRpYyBjb25zdGV4cHIg
U291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSA9IFNvdXJjZVBhcnNlTW9kZTo6TW9kdWxlRXZhbHVh
dGVNb2RlOworICAgIHN0YXRpYyBjb25zdGV4cHIgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1v
ZGUgPSBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmljdDsKKyAgICBzdGF0aWMgY29uc3RleHByIEpT
UGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlID0gSlNQYXJzZXJTY3JpcHRNb2RlOjpNb2R1bGU7
CiB9OwogCiB0ZW1wbGF0ZSA8RGVidWdnZXJQYXJzZUluZm9UYWcgVD4KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclByaW1pdGl2ZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQcmltaXRpdmVzLmgJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
clByaW1pdGl2ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw5ICszMCw5IEBACiBuYW1lc3BhY2UgSlND
IHsKIAogdHlwZWRlZiBzaXplX3QgU291cmNlSUQ7Ci1zdGF0aWMgY29uc3QgU291cmNlSUQgbm9T
b3VyY2VJRCA9IDA7CitzdGF0aWMgY29uc3RleHByIFNvdXJjZUlEIG5vU291cmNlSUQgPSAwOwog
CiB0eXBlZGVmIHNpemVfdCBCcmVha3BvaW50SUQ7Ci1zdGF0aWMgY29uc3QgQnJlYWtwb2ludElE
IG5vQnJlYWtwb2ludElEID0gMDsKK3N0YXRpYyBjb25zdGV4cHIgQnJlYWtwb2ludElEIG5vQnJl
YWtwb2ludElEID0gMDsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJTY29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclNjb3BlLmgJKHJldmlzaW9uIDI0OTk3NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclNjb3BlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMDks
IDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEpTU2NvcGU7CiBj
bGFzcyBEZWJ1Z2dlclNjb3BlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIERlYnVnZ2VyU2NvcGUqIGNy
ZWF0ZShWTSYgdm0sIEpTU2NvcGUqIHNjb3BlKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzA0LDggKzMwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkg
Y29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZVNo
aWZ0ID0gMTU7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRvcFNoaWZ0ID0gMTQ7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB2YWx1ZVNoaWZ0ID0gMTU7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCB0b3BTaGlmdCA9IDE0OwogICAgIAogICAgIFBheWxvYWQgcGF5bG9h
ZEltcGwoKSBjb25zdAogICAgIHsKQEAgLTMyOSw3ICszMjksNyBAQCBwcml2YXRlOgogc3RydWN0
IEFic3RyYWN0SGVhcEhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEFic3Ry
YWN0SGVhcCYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1
YWwoY29uc3QgQWJzdHJhY3RIZWFwJiBhLCBjb25zdCBBYnN0cmFjdEhlYXAmIGIpIHsgcmV0dXJu
IGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JE
ZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmgJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RW
YWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTY3LDEyICs1NjcsMTIgQEAgcHJpdmF0ZToKIG5h
bWVzcGFjZSBXVEYgewogdGVtcGxhdGUgPD4KIHN0cnVjdCBWZWN0b3JUcmFpdHM8SlNDOjpERkc6
OkFic3RyYWN0VmFsdWU+IDogVmVjdG9yVHJhaXRzQmFzZTxmYWxzZSwgSlNDOjpERkc6OkFic3Ry
YWN0VmFsdWU+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBjYW5Jbml0aWFsaXplV2l0aE1lbXNl
dCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbkluaXRpYWxpemVXaXRoTWVt
c2V0ID0gdHJ1ZTsKIH07CiAKIHRlbXBsYXRlIDw+CiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkRG
Rzo6QWJzdHJhY3RWYWx1ZT4gOiBHZW5lcmljSGFzaFRyYWl0czxKU0M6OkRGRzo6QWJzdHJhY3RW
YWx1ZT4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1ZTsKIH07CiB9
OwogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHAJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRz
RWxpbWluYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogbmFtZXNwYWNlIHsKIAogbmFtZXNwYWNlIERG
R0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2VJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwog
fQogCiBjbGFzcyBBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
CShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsOSArODAsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIG5hbWVzcGFjZSBERkdCeXRlQ29kZVBhcnNlckludGVy
bmFsIHsKICNpZmRlZiBOREVCVUcKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsK
K3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAjZWxzZQotc3RhdGljIGNv
bnN0IGJvb2wgdmVyYm9zZSA9IHRydWU7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9
IHRydWU7CiAjZW5kaWYKIH0gLy8gbmFtZXNwYWNlIERGR0J5dGVDb2RlUGFyc2VySW50ZXJuYWwK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAJKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7CiBuYW1lc3BhY2UgewogCiBuYW1lc3BhY2UgREZHQ1NFUGhhc2VJbnRlcm5hbCB7
Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJv
b2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiBjbGFzcyBJbXB1cmVEYXRhU2xvdCB7CkBAIC0zNTMs
NyArMzUzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gdGhlIG92ZXJoZWFkIG9mIEhhc2hNYXBz
IGNhbiBiZSBxdWl0ZSBoaWdoIGN1cnJlbnRseTogY2xlYXJpbmcgdGhlbSwgb3IgZXZlbiByZW1v
dmluZwogICAgICAgICAvLyBlbm91Z2ggdGhpbmdzIGZyb20gdGhlbSwgZGVsZXRlcyAob3IgcmVz
aXplcykgdGhlaXIgYmFja2luZyBzdG9yZSBlYWdlcmx5LiBIZW5jZQogICAgICAgICAvLyBIYXNo
TWFwcyBpbmR1Y2UgYSBsb3Qgb2YgbWFsbG9jIHRyYWZmaWMuCi0gICAgICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBjYXBhY2l0eSA9IDEwMDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBjYXBhY2l0eSA9IDEwMDsKICAgICAKICAgICAgICAgU21hbGxNYXBzKCkKICAgICAgICAg
ICAgIDogbV9wdXJlTGVuZ3RoKDApCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29t
bW9uLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKIHN0cnVjdCBOb2RlOwogCiB0eXBlZGVmIHVpbnQzMl90IEJsb2Nr
SW5kZXg7Ci1zdGF0aWMgY29uc3QgQmxvY2tJbmRleCBOb0Jsb2NrID0gVUlOVF9NQVg7CitzdGF0
aWMgY29uc3RleHByIEJsb2NrSW5kZXggTm9CbG9jayA9IFVJTlRfTUFYOwogCiAvLyBVc2UgUmVm
Q2hpbGRyZW4gaWYgdGhlIGNoaWxkIHJlZiBjb3VudHMgaGF2ZW4ndCBhbHJlYWR5IGJlZW4gYWRq
dXN0ZWQgdXNpbmcKIC8vIG90aGVyIG1lYW5zIGFuZCBlaXRoZXIgb2YgdGhlIGZvbGxvd2luZyBp
cyB0cnVlOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21waWxhdGlvbktl
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tcGlsYXRp
b25LZXkuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb21waWxhdGlvbktleS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg5LDcgKzg5LDcgQEAgcHJp
dmF0ZToKIHN0cnVjdCBDb21waWxhdGlvbktleUhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBo
YXNoKGNvbnN0IENvbXBpbGF0aW9uS2V5JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAg
ICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBDb21waWxhdGlvbktleSYgYSwgY29uc3QgQ29tcGls
YXRpb25LZXkmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNh
ZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdE
ZXNpcmVkR2xvYmFsUHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Rlc2lyZWRHbG9iYWxQcm9wZXJ0eS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRHbG9iYWxQcm9wZXJ0eS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05NCw3ICs5NCw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgRGVzaXJlZEdsb2Jh
bFByb3BlcnR5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgRGVzaXJlZEds
b2JhbFByb3BlcnR5JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9v
bCBlcXVhbChjb25zdCBEZXNpcmVkR2xvYmFsUHJvcGVydHkmIGEsIGNvbnN0IERlc2lyZWRHbG9i
YWxQcm9wZXJ0eSYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6REZHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0VkZ2VEb21pbmF0ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0VkZ2VEb21pbmF0ZXMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdFZGdlRG9taW5hdGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNyArMzIsNyBA
QAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBFZGdlRG9taW5hdGVz
IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAKIHB1YmxpYzoKICAgICBFZGdlRG9t
aW5hdGVzKEdyYXBoJiBncmFwaCwgQmFzaWNCbG9jayogYmxvY2spCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Vwb2NoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdFcG9jaC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Vwb2NoLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTA5LDggKzEwOSw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICAKIHByaXZhdGU6
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfbm9uZSA9IDA7Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIHNfZmlyc3QgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc19u
b25lID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNfZmlyc3QgPSAxOwogICAg
IAogICAgIHVuc2lnbmVkIG1fZXBvY2g7CiB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGb3JBbGxLaWxscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRm9yQWxsS2lsbHMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGb3JBbGxLaWxscy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwMiw4ICsxMDIs
OCBAQCB2b2lkIGZvckFsbEtpbGxlZE5vZGVzQXROb2RlSW5kZXgoCiAgICAgR3JhcGgmIGdyYXBo
LCBBdmFpbGFiaWxpdHlNYXAmIGF2YWlsYWJpbGl0eU1hcCwgQmFzaWNCbG9jayogYmxvY2ssIHVu
c2lnbmVkIG5vZGVJbmRleCwKICAgICBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQogewotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBzZWVuSW5DbG9zdXJlRmxhZyA9IDE7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIGNhbGxlZEZ1bmN0b3JGbGFnID0gMjsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIHNlZW5JbkNsb3N1cmVGbGFnID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIGNhbGxlZEZ1bmN0b3JGbGFnID0gMjsKICAgICBIYXNoTWFwPE5vZGUqLCB1bnNpZ25l
ZD4gZmxhZ3M7CiAgICAgCiAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2RlSW5kZXgpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTMzLDcgKzExMzMsNyBAQCBCeXRlY29kZUtpbGxzJiBHcmFwaDo6a2lsbHNGb3Io
SW5saW5lQ2FsCiAKIGJvb2wgR3JhcGg6OmlzTGl2ZUluQnl0ZWNvZGUoVmlydHVhbFJlZ2lzdGVy
IG9wZXJhbmQsIENvZGVPcmlnaW4gY29kZU9yaWdpbikKIHsKLSAgICBzdGF0aWMgY29uc3QgYm9v
bCB2ZXJib3NlID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBm
YWxzZTsKICAgICAKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgZGF0YUxvZygiQ2hlY2tpbmcg
b2Ygb3BlcmFuZCBpcyBsaXZlOiAiLCBvcGVyYW5kLCAiXG4iKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAkocmV2aXNpb24gMjQ5OTc2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTE0OSw3ICsxNDksNyBAQCBwcml2YXRlOgogc3RydWN0IEhlYXBMb2NhdGlvbkhhc2gg
ewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEhlYXBMb2NhdGlvbiYga2V5KSB7IHJl
dHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgSGVhcExvY2F0
aW9uJiBhLCBjb25zdCBIZWFwTG9jYXRpb24mIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0
YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0
cnVlOwogfTsKIAogTG9jYXRpb25LaW5kIGluZGV4ZWRQcm9wZXJ0eUxvY0ZvclJlc3VsdFR5cGUo
Tm9kZUZsYWdzKTsKQEAgLTE5MCw3ICsxOTAsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0
SGFzaDxKU0M6OkRGRzo6CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRz
OwogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkRGRzo6SGVhcExvY2F0aW9uPiA6
IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxKU0M6OkRGRzo6SGVhcExvY2F0aW9uPiB7Ci0gICAgc3Rh
dGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0
U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5Q
bGFjZUFic3RyYWN0U3RhdGUuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTM5LDcgKzM5LDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogbmFt
ZXNwYWNlIERGR0luUGxhY2VBYnN0cmFjdFN0YXRlSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJv
b2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKIH0KIAogSW5QbGFjZUFic3RyYWN0U3RhdGU6OkluUGxhY2VBYnN0cmFjdFN0YXRlKEdyYXBo
JiBncmFwaCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW50ZWdlckNoZWNr
Q29tYmluaW5nUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ludGVnZXJDaGVja0NvbWJpbmluZ1BoYXNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDcgKzQwLDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgREZHIHsKIAogbmFtZXNwYWNlIERGR0ludGVnZXJDaGVja0NvbWJpbmluZ1BoYXNl
SW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNv
bnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogY2xhc3MgSW50ZWdlckNoZWNrQ29t
YmluaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdJbnRlZ2VyUmFuZ2VPcHRpbWl6YXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJbnRlZ2VyUmFuZ2VPcHRpbWl6YXRpb25QaGFz
ZS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDMs
NyArNDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiBuYW1lc3BhY2Ugewog
CiBuYW1lc3BhY2UgREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2VJbnRlcm5hbCB7Ci1z
dGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wg
dmVyYm9zZSA9IGZhbHNlOwogfQogY29uc3QgdW5zaWduZWQgZ2l2ZVVwVGhyZXNob2xkID0gNTA7
CiAKQEAgLTk3LDggKzk3LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWluVmFndWVuZXNzID0gMDsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgbWF4VmFndWVuZXNzID0gMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG1pblZhZ3VlbmVzcyA9IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBt
YXhWYWd1ZW5lc3MgPSAyOwogICAgIAogICAgIHN0YXRpYyBLaW5kIGZsaXBwZWQoS2luZCBraW5k
KQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW52YWxpZGF0aW9u
UG9pbnRJbmplY3Rpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmNwcAkocmV2aXNpb24g
MjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJbnZhbGlkYXRpb25Qb2lu
dEluamVjdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw3ICszOCw3IEBACiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNzIEludmFsaWRhdGlvblBvaW50
SW5qZWN0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewotICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNl
OwogICAgIAogcHVibGljOgogICAgIEludmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UoR3Jh
cGgmIGdyYXBoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdMSUNNUGhhc2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTElDTVBoYXNl
LmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdM
SUNNUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDYsNyArNDYsNyBAQAogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBMSUNNUGhhc2UgOiBwdWJsaWMgUGhhc2Ug
ewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogCiAgICAgdXNpbmcgTmF0dXJhbExvb3AgPSBT
U0FOYXR1cmFsTG9vcDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdMYXp5
Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTGF6eU5v
ZGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdM
YXp5Tm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDEyICszNSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7CiAKIGNsYXNzIExhenlOb2RlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
Y29uc3Qgc2l6ZV90IGpzQ29uc3RhbnRUYWcgPSAwOwotICAgIHN0YXRpYyBjb25zdCBzaXplX3Qg
ZG91YmxlQ29uc3RhbnRUYWcgPSAxOwotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW50NTJDb25z
dGFudFRhZyA9IDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QganNDb25zdGFudFRhZyA9
IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgZG91YmxlQ29uc3RhbnRUYWcgPSAxOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGludDUyQ29uc3RhbnRUYWcgPSAyOwogCi0gICAg
c3RhdGljIGNvbnN0IHVpbnRwdHJfdCB0YWdNYXNrID0gMHgzOwotICAgIHN0YXRpYyBjb25zdCB1
aW50cHRyX3QgcG9pbnRlck1hc2sgPSB+dGFnTWFzazsKKyAgICBzdGF0aWMgY29uc3RleHByIHVp
bnRwdHJfdCB0YWdNYXNrID0gMHgzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IHBv
aW50ZXJNYXNrID0gfnRhZ01hc2s7CiAKICAgICBleHBsaWNpdCBMYXp5Tm9kZShOb2RlKiBub2Rl
ID0gbnVsbHB0cikKICAgICAgICAgOiBtX25vZGUobm9kZSkKQEAgLTE3Nyw3ICsxNzcsNyBAQCBu
YW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEhhc2hUcmFpdHM7
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPEpTQzo6REZHOjpMYXp5Tm9kZT4gOiBTaW1w
bGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpERkc6OkxhenlOb2RlPiB7Ci0gICAgc3RhdGljIGNvbnN0
IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkSUQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkSUQuaAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmllZElELmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogc3RydWN0IE1pbmlmaWVkSURIYXNoIHsK
ICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBNaW5pZmllZElEJiBrZXkpIHsgcmV0dXJu
IGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBNaW5pZmllZElEJiBh
LCBjb25zdCBNaW5pZmllZElEJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29u
c3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07
CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKQEAgLTkzLDcgKzkzLDcgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpERkc6OgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpERkc6
Ok1pbmlmaWVkSUQ+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6REZHOjpNaW5pZmllZElE
PiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTW92
SGludFJlbW92YWxQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdNb3ZIaW50UmVtb3ZhbFBoYXNlLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNb3ZIaW50UmVtb3ZhbFBoYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIG5h
bWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBERkdNb3ZIaW50UmVtb3ZhbFBoYXNlSW50ZXJuYWwgewot
c3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29s
IHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogY2xhc3MgTW92SGludFJlbW92YWxQaGFzZSA6IHB1Ymxp
YyBQaGFzZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbG93UHJv
amVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZUZsb3dQcm9qZWN0aW9uLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZUZsb3dQcm9qZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI2LDcgKzEy
Niw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVp
bnRwdHJfdCBzaGFkb3dCaXQgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IHNo
YWRvd0JpdCA9IDE7CiAgICAgCiAgICAgdWludHB0cl90IG1fd29yZCB7IDAgfTsKIH07CkBAIC0x
MzQsNyArMTM0LDcgQEAgcHVibGljOgogc3RydWN0IE5vZGVGbG93UHJvamVjdGlvbkhhc2ggewog
ICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKE5vZGVGbG93UHJvamVjdGlvbiBrZXkpIHsgcmV0dXJu
IGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChOb2RlRmxvd1Byb2plY3Rpb24g
YSwgTm9kZUZsb3dQcm9qZWN0aW9uIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBj
b25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwog
fTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTU0LDcgKzU1NCw3
IEBAIGlubGluZSBib29sIGlzQXRvbWljc0ludHJpbnNpYyhOb2RlVHlwZSAKICAgICB9CiB9CiAK
LXN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhOdW1FeHRyYUF0b21pY3NBcmdzID0gMjsKK3N0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgbWF4TnVtRXh0cmFBdG9taWNzQXJncyA9IDI7CiAKIGlubGlu
ZSB1bnNpZ25lZCBudW1FeHRyYUF0b21pY3NBcmdzKE5vZGVUeXBlIG9wKQogewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09iamVjdEFsbG9j
YXRpb25TaW5raW5nUGhhc2UuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiBuYW1lc3BhY2UgewogCiBuYW1lc3BhY2UgREZHT2JqZWN0QWxsb2NhdGlvblNpbmtpbmdQaGFz
ZUludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBj
b25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIC8vIEluIG9yZGVyIHRvIHNpbmsg
b2JqZWN0IGN5Y2xlcywgd2UgdXNlIGEgcG9pbnRzLXRvIGFuYWx5c2lzIGNvdXBsZWQKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGhhbnRvbUluc2VydGlvblBoYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BoYW50b21JbnNlcnRp
b25QaGFzZS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHUGhhbnRvbUluc2VydGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NCw3ICs0NCw3
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIG5hbWVzcGFjZSB7CiAKIG5hbWVz
cGFjZSBERkdQaGFudG9tSW5zZXJ0aW9uUGhhc2VJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9v
bCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNl
OwogfQogCiBjbGFzcyBQaGFudG9tSW5zZXJ0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcm9tb3RlZEhlYXBMb2NhdGlvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJvbW90ZWRIZWFwTG9j
YXRpb24uaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdQcm9tb3RlZEhlYXBMb2NhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTM4LDcgKzEzOCw3
IEBAIHByaXZhdGU6CiBzdHJ1Y3QgUHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3JIYXNoIHsKICAg
ICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBQcm9tb3RlZExvY2F0aW9uRGVzY3JpcHRvciYg
a2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3Qg
UHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3ImIGEsIGNvbnN0IFByb21vdGVkTG9jYXRpb25EZXNj
cmlwdG9yJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZl
VG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIGNsYXNzIFBy
b21vdGVkSGVhcExvY2F0aW9uIHsKQEAgLTIwNCw3ICsyMDQsNyBAQCBwcml2YXRlOgogc3RydWN0
IFByb21vdGVkSGVhcExvY2F0aW9uSGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29u
c3QgUHJvbW90ZWRIZWFwTG9jYXRpb24mIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAg
IHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFByb21vdGVkSGVhcExvY2F0aW9uJiBhLCBjb25zdCBQ
cm9tb3RlZEhlYXBMb2NhdGlvbiYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNv
bnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9
OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkBAIC0yMjAsNyArMjIwLDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpERkc6OgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpE
Rkc6OlByb21vdGVkSGVhcExvY2F0aW9uPiA6IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxKU0M6OkRG
Rzo6UHJvbW90ZWRIZWFwTG9jYXRpb24+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZh
bHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJ
c1plcm8gPSBmYWxzZTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBEZWZhdWx0
SGFzaDsKQEAgLTIzMCw3ICsyMzAsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxK
U0M6OkRGRzo6CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwogdGVt
cGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkRGRzo6UHJvbW90ZWRMb2NhdGlvbkRlc2Ny
aXB0b3I+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6REZHOjpQcm9tb3RlZExvY2F0aW9u
RGVzY3JpcHRvcj4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBm
YWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNl
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1Byb3BlcnR5VHlwZUtleS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUHJvcGVydHlUeXBlS2V5LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJvcGVydHlUeXBlS2V5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgUHJvcGVydHlUeXBlS2V5SGFzaCB7CiAg
ICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgUHJvcGVydHlUeXBlS2V5JiBrZXkpIHsgcmV0
dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBQcm9wZXJ0eVR5
cGVLZXkmIGEsIGNvbnN0IFByb3BlcnR5VHlwZUtleSYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0g
ICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRl
ZCA9IHRydWU7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkBAIC0xMTcsNyArMTE3
LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpERkc6OgogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hU
cmFpdHM8SlNDOjpERkc6OlByb3BlcnR5VHlwZUtleT4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8
SlNDOjpERkc6OlByb3BlcnR5VHlwZUtleT4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5
VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1
ZUlzWmVybyA9IGZhbHNlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1B1cmVWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUHVyZVZhbHVlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHVyZVZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQ1
LDcgKzE0NSw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgUHVyZVZhbHVlSGFzaCB7CiAgICAgc3RhdGlj
IHVuc2lnbmVkIGhhc2goY29uc3QgUHVyZVZhbHVlJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7
IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBQdXJlVmFsdWUmIGEsIGNvbnN0IFB1cmVW
YWx1ZSYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRv
Q29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6REZHCkBAIC0xNTksNyArMTU5LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVm
YXVsdEhhc2g8SlNDOjpERkc6OgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRy
YWl0czsKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpERkc6OlB1cmVWYWx1ZT4g
OiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpERkc6OlB1cmVWYWx1ZT4gewotICAgIHN0YXRp
YyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1B1dFN0YWNrU2lua2luZ1Bo
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1B1dFN0
YWNrU2lua2luZ1BoYXNlLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQdXRTdGFja1NpbmtpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIG5hbWVzcGFj
ZSB7CiAKIG5hbWVzcGFjZSBERkdQdXRTdGFja1NpbmtpbmdQaGFzZUludGVybmFsIHsKLXN0YXRp
YyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CiB9CiAKIGNsYXNzIFB1dFN0YWNrU2lua2luZ1BoYXNlIDogcHVibGljIFBo
YXNlIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVnaXN0ZXJCYW5rLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZWdpc3RlckJhbmsu
aAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZWdp
c3RlckJhbmsuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02OSwxMCArNjksMTAgQEAgbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBERkcgewogdGVtcGxhdGU8Y2xhc3MgQmFua0luZm8+CiBjbGFzcyBSZWdpc3Rl
ckJhbmsgewogICAgIHR5cGVkZWYgdHlwZW5hbWUgQmFua0luZm86OlJlZ2lzdGVyVHlwZSBSZWdJ
RDsKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IE5VTV9SRUdTID0gQmFua0luZm86Om51bWJlck9m
UmVnaXN0ZXJzOworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IE5VTV9SRUdTID0gQmFua0lu
Zm86Om51bWJlck9mUmVnaXN0ZXJzOwogCiAgICAgdHlwZWRlZiB1aW50MzJfdCBTcGlsbEhpbnQ7
Ci0gICAgc3RhdGljIGNvbnN0IFNwaWxsSGludCBTcGlsbEhpbnRJbnZhbGlkID0gMHhmZmZmZmZm
ZjsKKyAgICBzdGF0aWMgY29uc3RleHByIFNwaWxsSGludCBTcGlsbEhpbnRJbnZhbGlkID0gMHhm
ZmZmZmZmZjsKIAogcHVibGljOgogICAgIFJlZ2lzdGVyQmFuaygpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NTQUNvbnZlcnNpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUNvbnZlcnNp
b25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OCw3ICs0OCw3IEBACiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNzIFNTQUNvbnZlcnNpb25QaGFzZSA6IHB1Ymxp
YyBQaGFzZSB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCiBwdWJsaWM6CiAgICAg
U1NBQ29udmVyc2lvblBoYXNlKEdyYXBoJiBncmFwaCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMs
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNyw3ICszNyw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7CiAKIGNsYXNzIFNTQUxvd2VyaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewotICAg
IHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAogcHVibGljOgogICAgIFNTQUxvd2VyaW5nUGhh
c2UoR3JhcGgmIGdyYXBoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjMw
LDcgKzI2MzAsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUmVwKE5vCiAg
ICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc051bWJlciA9IG1faml0LmJyYW5jaElmTnVt
YmVyKG9wMUdQUik7CiAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc1VuZGVmaW5lZCA9
IG1faml0LmJyYW5jaElmVW5kZWZpbmVkKG9wMUdQUik7CiAKLSAgICAgICAgICAgIHN0YXRpYyBj
b25zdCBkb3VibGUgemVybyA9IDA7CisgICAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGRvdWJs
ZSB6ZXJvID0gMDsKICAgICAgICAgICAgIG1faml0LmxvYWREb3VibGUoVHJ1c3RlZEltbVB0cigm
emVybyksIHJlc3VsdEZQUik7CiAKICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGlzTnVs
bCA9IG1faml0LmJyYW5jaElmTnVsbChvcDFHUFIpOwpAQCAtMjY0MCw3ICsyNjQwLDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURvdWJsZVJlcChObwogICAgICAgICAgICAgICAgIG1f
aml0LmJyYW5jaFRlc3Q2NChKSVRDb21waWxlcjo6WmVybywgb3AxR1BSLCBUcnVzdGVkSW1tMzIo
c3RhdGljX2Nhc3Q8aW50MzJfdD4oVGFnQml0Qm9vbCkpKSk7CiAKICAgICAgICAgICAgIEpJVENv
bXBpbGVyOjpKdW1wIGlzRmFsc2UgPSBtX2ppdC5icmFuY2g2NChKSVRDb21waWxlcjo6RXF1YWws
IG9wMUdQUiwgVHJ1c3RlZEltbTY0KFZhbHVlRmFsc2UpKTsKLSAgICAgICAgICAgIHN0YXRpYyBj
b25zdCBkb3VibGUgb25lID0gMTsKKyAgICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgZG91Ymxl
IG9uZSA9IDE7CiAgICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKFRydXN0ZWRJbW1QdHIoJm9u
ZSksIHJlc3VsdEZQUik7CiAgICAgICAgICAgICBkb25lLmFwcGVuZChtX2ppdC5qdW1wKCkpOwog
ICAgICAgICAgICAgZG9uZS5hcHBlbmQoaXNGYWxzZSk7CkBAIC0yNjc4LDcgKzI2NzgsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUmVwKE5vCiAgICAgICAgICAgICBKSVRD
b21waWxlcjo6SnVtcCBpc051bWJlciA9IG1faml0LmJyYW5jaDMyKEpJVENvbXBpbGVyOjpCZWxv
dywgb3AxVGFnR1BSLCBKSVRDb21waWxlcjo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6Okxvd2VzdFRh
ZyArIDEpKTsKICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGlzVW5kZWZpbmVkID0gbV9q
aXQuYnJhbmNoSWZVbmRlZmluZWQob3AxVGFnR1BSKTsKIAotICAgICAgICAgICAgc3RhdGljIGNv
bnN0IGRvdWJsZSB6ZXJvID0gMDsKKyAgICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgZG91Ymxl
IHplcm8gPSAwOwogICAgICAgICAgICAgbV9qaXQubG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZ6
ZXJvKSwgcmVzdWx0RlBSKTsKIAogICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgaXNOdWxs
ID0gbV9qaXQuYnJhbmNoSWZOdWxsKG9wMVRhZ0dQUik7CkBAIC0yNjg3LDcgKzI2ODcsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUmVwKE5vCiAgICAgICAgICAgICBERkdf
VFlQRV9DSEVDSyhKU1ZhbHVlUmVncyhvcDFUYWdHUFIsIG9wMVBheWxvYWRHUFIpLCBub2RlLT5j
aGlsZDEoKSwgflNwZWNDZWxsLCBtX2ppdC5icmFuY2hJZk5vdEJvb2xlYW4ob3AxVGFnR1BSLCBJ
bnZhbGlkR1BSUmVnKSk7CiAKICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGlzRmFsc2Ug
PSBtX2ppdC5icmFuY2hUZXN0MzIoSklUQ29tcGlsZXI6Olplcm8sIG9wMVBheWxvYWRHUFIsIFRy
dXN0ZWRJbW0zMigxKSk7Ci0gICAgICAgICAgICBzdGF0aWMgY29uc3QgZG91YmxlIG9uZSA9IDE7
CisgICAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBvbmUgPSAxOwogICAgICAgICAg
ICAgbV9qaXQubG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZvbmUpLCByZXN1bHRGUFIpOwogICAg
ICAgICAgICAgZG9uZS5hcHBlbmQobV9qaXQuanVtcCgpKTsKICAgICAgICAgICAgIGRvbmUuYXBw
ZW5kKGlzRmFsc2UpOwpAQCAtMjgwNyw5ICsyODA3LDkgQEAgc3RhdGljIHZvaWQgY29tcGlsZUNs
YW1wSW50ZWdlclRvQnl0ZShKSQogc3RhdGljIHZvaWQgY29tcGlsZUNsYW1wRG91YmxlVG9CeXRl
KEpJVENvbXBpbGVyJiBqaXQsIEdQUlJlZyByZXN1bHQsIEZQUlJlZyBzb3VyY2UsIEZQUlJlZyBz
Y3JhdGNoKQogewogICAgIC8vIFVub3JkZXJlZCBjb21wYXJlIHNvIHdlIHBpY2sgdXAgTmFOCi0g
ICAgc3RhdGljIGNvbnN0IGRvdWJsZSB6ZXJvID0gMDsKLSAgICBzdGF0aWMgY29uc3QgZG91Ymxl
IGJ5dGVNYXggPSAyNTU7Ci0gICAgc3RhdGljIGNvbnN0IGRvdWJsZSBoYWxmID0gMC41OworICAg
IHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIHplcm8gPSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIg
ZG91YmxlIGJ5dGVNYXggPSAyNTU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgaGFsZiA9
IDAuNTsKICAgICBqaXQubG9hZERvdWJsZShKSVRDb21waWxlcjo6VHJ1c3RlZEltbVB0cigmemVy
byksIHNjcmF0Y2gpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHRvb1NtYWxsID0gaml0LmJy
YW5jaERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTGVzc1RoYW5PckVxdWFsT3JVbm9yZGVy
ZWQsIHNvdXJjZSwgc2NyYXRjaCk7CiAgICAgaml0LmxvYWREb3VibGUoSklUQ29tcGlsZXI6OlRy
dXN0ZWRJbW1QdHIoJmJ5dGVNYXgpLCBzY3JhdGNoKTsKQEAgLTU1OTgsNyArNTU5OCw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFJvdW5kaW4KICAgICAgICAgICAgICAgICBG
UFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogICAgICAgICAgICAgICAgIEZQUlJlZyByZXN1bHRG
UFIgPSByZXN1bHQuZnByKCk7CiAgICAgICAgICAgICAgICAgaWYgKHByb2R1Y2VzSW50ZWdlcihu
b2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSAmJiAhc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obm9k
ZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgc3RhdGljIGNv
bnN0IGRvdWJsZSBoYWxmQ29uc3RhbnQgPSAwLjU7CisgICAgICAgICAgICAgICAgICAgIHN0YXRp
YyBjb25zdGV4cHIgZG91YmxlIGhhbGZDb25zdGFudCA9IDAuNTsKICAgICAgICAgICAgICAgICAg
ICAgbV9qaXQubG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZoYWxmQ29uc3RhbnQpLCByZXN1bHRG
UFIpOwogICAgICAgICAgICAgICAgICAgICBtX2ppdC5hZGREb3VibGUodmFsdWVGUFIsIHJlc3Vs
dEZQUik7CiAgICAgICAgICAgICAgICAgICAgIG1faml0LmZsb29yRG91YmxlKHJlc3VsdEZQUiwg
cmVzdWx0RlBSKTsKQEAgLTU2MDcsMTIgKzU2MDcsMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUFyaXRoUm91bmRpbgogCiAgICAgICAgICAgICAgICAgICAgIEZQUlRlbXBvcmFyeSBz
Y3JhdGNoKHRoaXMpOwogICAgICAgICAgICAgICAgICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IHNj
cmF0Y2guZnByKCk7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgaGFs
ZkNvbnN0YW50ID0gLTAuNTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBk
b3VibGUgaGFsZkNvbnN0YW50ID0gLTAuNTsKICAgICAgICAgICAgICAgICAgICAgbV9qaXQubG9h
ZERvdWJsZShUcnVzdGVkSW1tUHRyKCZoYWxmQ29uc3RhbnQpLCBzY3JhdGNoRlBSKTsKICAgICAg
ICAgICAgICAgICAgICAgbV9qaXQuYWRkRG91YmxlKHJlc3VsdEZQUiwgc2NyYXRjaEZQUik7CiAK
ICAgICAgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgc2hvdWxkVXNlQ2VpbGVkID0g
bV9qaXQuYnJhbmNoRG91YmxlKEpJVENvbXBpbGVyOjpEb3VibGVMZXNzVGhhbk9yRXF1YWwsIHNj
cmF0Y2hGUFIsIHZhbHVlRlBSKTsKLSAgICAgICAgICAgICAgICAgICAgc3RhdGljIGNvbnN0IGRv
dWJsZSBvbmVDb25zdGFudCA9IC0xLjA7CisgICAgICAgICAgICAgICAgICAgIHN0YXRpYyBjb25z
dGV4cHIgZG91YmxlIG9uZUNvbnN0YW50ID0gLTEuMDsKICAgICAgICAgICAgICAgICAgICAgbV9q
aXQubG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZvbmVDb25zdGFudCksIHNjcmF0Y2hGUFIpOwog
ICAgICAgICAgICAgICAgICAgICBtX2ppdC5hZGREb3VibGUoc2NyYXRjaEZQUiwgcmVzdWx0RlBS
KTsKICAgICAgICAgICAgICAgICAgICAgc2hvdWxkVXNlQ2VpbGVkLmxpbmsoJm1faml0KTsKQEAg
LTU4MDIsNyArNTgwMiw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBjb21waWxlQXJp
dGgKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2tpcEZhc3RQYXRoOwogICAgIHNraXBG
YXN0UGF0aC5hcHBlbmQoYXNzZW1ibGVyLmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZSwg
eU9wZXJhbmQsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIobWF4RXhwb25lbnRGb3JJbnRl
Z2VyTWF0aFBvdykpKTsKIAotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgb25lQ29uc3RhbnQgPSAx
LjA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgb25lQ29uc3RhbnQgPSAxLjA7CiAgICAg
YXNzZW1ibGVyLmxvYWREb3VibGUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJm9uZUNv
bnN0YW50KSwgcmVzdWx0KTsKIAogICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBzdGFydExvb3Ao
YXNzZW1ibGVyLmxhYmVsKCkpOwpAQCAtNTg5Myw4ICs1ODkzLDggQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUFyaXRoUG93KE5vZAogCiAgICAgaWYgKG5vZGUtPmNoaWxkMigpLT5pc0Rv
dWJsZUNvbnN0YW50KCkpIHsKICAgICAgICAgZG91YmxlIGV4cG9uZW50ID0gbm9kZS0+Y2hpbGQy
KCktPmFzTnVtYmVyKCk7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgaW5maW5pdHlDb25z
dGFudCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKLSAgICAgICAg
c3RhdGljIGNvbnN0IGRvdWJsZSBtaW51c0luZmluaXR5Q29uc3RhbnQgPSAtc3RkOjpudW1lcmlj
X2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGRv
dWJsZSBpbmZpbml0eUNvbnN0YW50ID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZp
bml0eSgpOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBtaW51c0luZmluaXR5Q29u
c3RhbnQgPSAtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOwogICAgICAg
ICBpZiAoZXhwb25lbnQgPT0gMC41KSB7CiAgICAgICAgICAgICBTcGVjdWxhdGVEb3VibGVPcGVy
YW5kIHhPcGVyYW5kKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIEZQUlRlbXBv
cmFyeSByZXN1bHQodGhpcyk7CkBAIC01OTM0LDcgKzU5MzQsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlQXJpdGhQb3coTm9kCiAgICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKFRy
dXN0ZWRJbW1QdHIoJm1pbnVzSW5maW5pdHlDb25zdGFudCksIHJlc3VsdEZwcik7CiAgICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCB4SXNNaW51c0luZmluaXR5ID0gbV9qaXQuYnJhbmNo
RG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVFcXVhbCwgeE9wZXJhbmRGcHIsIHJlc3VsdEZw
cik7CiAKLSAgICAgICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgb25lQ29uc3RhbnQgPSAxLjsK
KyAgICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIG9uZUNvbnN0YW50ID0gMS47CiAg
ICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKFRydXN0ZWRJbW1QdHIoJm9uZUNvbnN0YW50KSwg
cmVzdWx0RnByKTsKICAgICAgICAgICAgIG1faml0LnNxcnREb3VibGUoeE9wZXJhbmRGcHIsIHNj
cmF0Y2hGUFIpOwogICAgICAgICAgICAgbV9qaXQuZGl2RG91YmxlKHJlc3VsdEZwciwgc2NyYXRj
aEZQUiwgcmVzdWx0RnByKTsKQEAgLTEwNzg1LDcgKzEwNzg1LDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6ZW1pdEJpbmFyeVN3aXRjaFN0cgogICAgIHVuc2lnbmVkIG51bUNoZWNrZWQsIHVuc2ln
bmVkIGJlZ2luLCB1bnNpZ25lZCBlbmQsIEdQUlJlZyBidWZmZXIsIEdQUlJlZyBsZW5ndGgsCiAg
ICAgR1BSUmVnIHRlbXAsIHVuc2lnbmVkIGFscmVhZHlDaGVja2VkTGVuZ3RoLCBib29sIGNoZWNr
ZWRFeGFjdExlbmd0aCkKIHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAKICAgICBp
ZiAodmVyYm9zZSkgewogICAgICAgICBkYXRhTG9nKCJXZSdyZSBkb3duIHRvIHRoZSBmb2xsb3dp
bmcgY2FzZXMsIGFscmVhZHlDaGVja2VkTGVuZ3RoID0gIiwgYWxyZWFkeUNoZWNrZWRMZW5ndGgs
ICI6XG4iKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RhY2tMYXlvdXRQ
aGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdGFj
a0xheW91dFBoYXNlLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTdGFja0xheW91dFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2LDcg
KzM2LDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgU3RhY2tM
YXlvdXRQaGFzZSA6IHB1YmxpYyBQaGFzZSB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAg
ICAgCiBwdWJsaWM6CiAgICAgU3RhY2tMYXlvdXRQaGFzZShHcmFwaCYgZ3JhcGgpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmll
ckluc2VydGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIG5h
bWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZUludGVy
bmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4
cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIGVudW0gY2xhc3MgUGhhc2VNb2RlIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJl
ZHVjdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTQ1LDcgKzQ1LDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3Mg
U3RyZW5ndGhSZWR1Y3Rpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7Ci0gICAgc3RhdGljIGNvbnN0
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7CiAgICAgCiBwdWJsaWM6CiAgICAgU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZShHcmFw
aCYgZ3JhcGgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUFi
c3RyYWN0VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNTEsMTAgKzI1MSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2YWxpZGF0ZVJlZmVy
ZW5jZXMoY29uc3QgVHJhY2tlZFJlZmVyZW5jZXMmKSBjb25zdDsKICAgICAKIHByaXZhdGU6Ci0g
ICAgc3RhdGljIGNvbnN0IHVpbnRwdHJfdCBjbG9iYmVyZWRGbGFnID0gUmVnaXN0ZXJlZFN0cnVj
dHVyZVNldDo6cmVzZXJ2ZWRGbGFnOwotICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3QgdG9wVmFs
dWUgPSBSZWdpc3RlcmVkU3RydWN0dXJlU2V0OjpyZXNlcnZlZFZhbHVlOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBwb2x5bW9ycGhpc21MaW1pdCA9IDEwOwotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBjbG9iYmVyZWRTdXByZW1hY3lUaHJlc2hvbGQgPSAyOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludHB0cl90IGNsb2JiZXJlZEZsYWcgPSBSZWdpc3RlcmVkU3RydWN0dXJlU2V0Ojpy
ZXNlcnZlZEZsYWc7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgdG9wVmFsdWUgPSBS
ZWdpc3RlcmVkU3RydWN0dXJlU2V0OjpyZXNlcnZlZFZhbHVlOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgcG9seW1vcnBoaXNtTGltaXQgPSAxMDsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIGNsb2JiZXJlZFN1cHJlbWFjeVRocmVzaG9sZCA9IDI7CiAgICAgCiAgICAgdm9p
ZCBmaWx0ZXJTbG93KFNwZWN1bGF0ZWRUeXBlIHR5cGUpOwogICAgIHZvaWQgZmlsdGVyQ2xhc3NJ
bmZvU2xvdyhjb25zdCBDbGFzc0luZm8qKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVmFyYXJnc0ZvcndhcmRpbmdQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJhcmdzRm9yd2FyZGluZ1BoYXNlLmNwcAkocmV2aXNpb24g
MjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJhcmdzRm9yd2FyZGlu
Z1BoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBERkcgewogbmFtZXNwYWNlIHsKIAogbmFtZXNwYWNlIERGR1ZhcmFyZ3NG
b3J3YXJkaW5nUGhhc2VJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiBjbGFzcyBW
YXJhcmdzRm9yd2FyZGluZ1BoYXNlIDogcHVibGljIFBoYXNlIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUV2ZW50U3RyZWFtLmNwcAkocmV2
aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUV2
ZW50U3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyMyw3ICsxMjMsNyBAQCB1bnNpZ25l
ZCBWYXJpYWJsZUV2ZW50U3RyZWFtOjpyZWNvbnN0cnVjCiAgICAgQ29kZUJsb2NrKiBiYXNlbGlu
ZUNvZGVCbG9jayA9IGNvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCk7CiAKICAgICB1bnNpZ25l
ZCBudW1WYXJpYWJsZXM7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludmFsaWRJbmRleCA9
IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIGludmFsaWRJbmRleCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+
OjptYXgoKTsKICAgICB1bnNpZ25lZCBmaXJzdFVuZGVmaW5lZCA9IGludmFsaWRJbmRleDsKICAg
ICBib29sIGZpcnN0VW5kZWZpbmVkSXNBcmd1bWVudCA9IGZhbHNlOwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dhdGNocG9pbnRDb2xsZWN0aW9uUGhhc2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV2F0Y2hwb2ludENvbGxlY3Rp
b25QaGFzZS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHV2F0Y2hwb2ludENvbGxlY3Rpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00
NSw3ICs0NSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNzIFdh
dGNocG9pbnRDb2xsZWN0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewotICAgIHN0YXRpYyBjb25z
dCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogICAgIAogcHVibGljOgogICAgIFdhdGNocG9pbnRDb2xsZWN0aW9uUGhhc2Uo
R3JhcGgmIGdyYXBoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9B
Uk02NC9BNjRET3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rp
c2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2RlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTE5NSw3ICsxOTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGJ1ZmZlclBy
aW50ZigibHNsICMldSIsIDE2ICogYW1vdW50KTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3Qg
aW50IGJ1ZmZlclNpemUgPSA4MTsKKyAgICBzdGF0aWMgY29uc3RleHByIGludCBidWZmZXJTaXpl
ID0gODE7CiAKICAgICBjaGFyIG1fZm9ybWF0QnVmZmVyW2J1ZmZlclNpemVdOwogICAgIHVpbnQz
Ml90KiBtX2N1cnJlbnRQQzsKQEAgLTIyNyw4ICsyMjcsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEE2
NERPcGNvZGVBZGRTdWJ0cmFjdEltbWVkaWF0ZSA6IHB1YmxpYyBBNjRET3Bjb2RlQWRkU3VidHJh
Y3QgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHgxZjAwMDAw
MDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MTEwMDAwMDA7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHgxZjAwMDAwMDsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDExMDAwMDAwOwogCiAgICAgREVGSU5FX1NU
QVRJQ19GT1JNQVQoQTY0RE9wY29kZUFkZFN1YnRyYWN0SW1tZWRpYXRlLCB0aGlzT2JqKTsKIApA
QCAtMjQxLDggKzI0MSw4IEBAIHB1YmxpYzoKIAogY2xhc3MgQTY0RE9wY29kZUFkZFN1YnRyYWN0
RXh0ZW5kZWRSZWdpc3RlciA6IHB1YmxpYyBBNjRET3Bjb2RlQWRkU3VidHJhY3QgewogcHVibGlj
OgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHgxZmUwMDAwMDsKLSAgICBzdGF0
aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MGIyMDAwMDA7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1aW50MzJfdCBtYXNrID0gMHgxZmUwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVp
bnQzMl90IHBhdHRlcm4gPSAweDBiMjAwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQo
QTY0RE9wY29kZUFkZFN1YnRyYWN0RXh0ZW5kZWRSZWdpc3RlciwgdGhpc09iaik7CiAKQEAgLTI1
Myw4ICsyNTMsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEE2NERPcGNvZGVBZGRTdWJ0cmFjdFNoaWZ0
ZWRSZWdpc3RlciA6IHB1YmxpYyBBNjRET3Bjb2RlQWRkU3VidHJhY3QgewogcHVibGljOgotICAg
IHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHgxZjIwMDAwMDsKLSAgICBzdGF0aWMgY29u
c3QgdWludDMyX3QgcGF0dGVybiA9IDB4MGIwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50MzJfdCBtYXNrID0gMHgxZjIwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90
IHBhdHRlcm4gPSAweDBiMDAwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9w
Y29kZUFkZFN1YnRyYWN0U2hpZnRlZFJlZ2lzdGVyLCB0aGlzT2JqKTsKIApAQCAtMjc0LDggKzI3
NCw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNfZXh0cmFjdE9w
TmFtZXNbM107CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4
MWY4MDAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDEzMDAwMDAw
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4MWY4MDAwMDA7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHgxMzAwMDAwMDsKIAogICAgIERF
RklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVCaXRmaWVsZCwgdGhpc09iaik7CiAKQEAgLTI5
NCw4ICsyOTQsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEE2NERPcGNvZGVDb21wYXJlQW5kQnJhbmNo
SW1tZWRpYXRlIDogcHVibGljIEE2NERPcGNvZGUgewogcHVibGljOgotICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBtYXNrID0gMHg3ZTAwMDAwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qg
cGF0dGVybiA9IDB4MzQwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNr
ID0gMHg3ZTAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAw
eDM0MDAwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUNvbXBhcmVB
bmRCcmFuY2hJbW1lZGlhdGUsIHRoaXNPYmopOwogCkBAIC0zMDcsOCArMzA3LDggQEAgcHVibGlj
OgogCiBjbGFzcyBBNjRET3Bjb2RlQ29uZGl0aW9uYWxCcmFuY2hJbW1lZGlhdGUgOiBwdWJsaWMg
QTY0RE9wY29kZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAw
eGZmMDAwMDEwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHg1NDAwMDAw
MDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweGZmMDAwMDEwOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4NTQwMDAwMDA7CiAKICAgICBE
RUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlQ29uZGl0aW9uYWxCcmFuY2hJbW1lZGlhdGUs
IHRoaXNPYmopOwogCkBAIC0zMjMsOCArMzIzLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29u
c3QgY2hhciogY29uc3Qgc19vcE5hbWVzWzRdOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0
IHVpbnQzMl90IG1hc2sgPSAweDFmZTAwMDAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBw
YXR0ZXJuID0gMHgxYTgwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sg
PSAweDFmZTAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4
MWE4MDAwMDA7CiAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlQ29uZGl0aW9u
YWxTZWxlY3QsIHRoaXNPYmopOwogCkBAIC0zNDQsOCArMzQ0LDggQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgY29uc3QgY2hhciogY29uc3Qgc19wYWNBdXRPcE5hbWVzWzE4XTsKICAgICAKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4NWZlMDAwMDA7Ci0gICAgc3Rh
dGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDVhYzAwMDAwOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludDMyX3QgbWFzayA9IDB4NWZlMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50MzJfdCBwYXR0ZXJuID0gMHg1YWMwMDAwMDsKICAgICAKICAgICBERUZJTkVfU1RBVElDX0ZP
Uk1BVChBNjRET3Bjb2RlRGF0YVByb2Nlc3NpbmcxU291cmNlLCB0aGlzT2JqKTsKICAgICAKQEAg
LTM2Myw4ICszNjMsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBz
X29wTmFtZXNbMTZdOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sg
PSAweDVmZTAwMDAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHgxYWMw
MDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweDVmZTAwMDAwOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4MWFjMDAwMDA7CiAKICAg
ICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlRGF0YVByb2Nlc3NpbmcyU291cmNlLCB0
aGlzT2JqKTsKIApAQCAtMzgyLDggKzM4Miw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0
IGNoYXIqIGNvbnN0IHNfcHNldWRvT3BOYW1lc1sxNl07CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMg
Y29uc3QgdWludDMyX3QgbWFzayA9IDB4MWYwMDAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQz
Ml90IHBhdHRlcm4gPSAweDFiMDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3Qg
bWFzayA9IDB4MWYwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJu
ID0gMHgxYjAwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVEYXRh
UHJvY2Vzc2luZzNTb3VyY2UsIHRoaXNPYmopOwogCkBAIC0zOTksOCArMzk5LDggQEAgcHVibGlj
OgogCiBjbGFzcyBBNjRPcGNvZGVFeGNlcHRpb25HZW5lcmF0aW9uIDogcHVibGljIEE2NERPcGNv
ZGUgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHhmZjAwMDAw
MDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4ZDQwMDAwMDA7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHhmZjAwMDAwMDsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweGQ0MDAwMDAwOwogCiAgICAgREVGSU5FX1NU
QVRJQ19GT1JNQVQoQTY0T3Bjb2RlRXhjZXB0aW9uR2VuZXJhdGlvbiwgdGhpc09iaik7CiAKQEAg
LTQxNCw4ICs0MTQsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEE2NERPcGNvZGVFeHRyYWN0IDogcHVi
bGljIEE2NERPcGNvZGUgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNr
ID0gMHgxZjgwMDAwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MTM4
MDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHgxZjgwMDAwMDsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDEzODAwMDAwOwogCiAg
ICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUV4dHJhY3QsIHRoaXNPYmopOwogCkBA
IC00MzksOCArNDM5LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qg
c19vcE5hbWVzWzE2XTsKICAgICAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qg
bWFzayA9IDB4NWYyMDNjMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAw
eDFlMjAyMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4NWYyMDNj
MDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHgxZTIwMjAwMDsK
ICAgICAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlRmxvYXRpbmdQb2ludENv
bXBhcmUsIHRoaXNPYmopOwogICAgIApAQCAtNDU1LDggKzQ1NSw4IEBAIHB1YmxpYzoKIAogY2xh
c3MgQTY0RE9wY29kZUZsb2F0aW5nUG9pbnRDb25kaXRpb25hbFNlbGVjdCA6IHB1YmxpYyBBNjRE
T3Bjb2RlRmxvYXRpbmdQb2ludE9wcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQz
Ml90IG1hc2sgPSAweDVmMjAwYzAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJu
ID0gMHgxZTIwMGMwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweDVm
MjAwYzAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4MWUyMDBj
MDA7CiAgICAgCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUZsb2F0aW5nUG9p
bnRDb25kaXRpb25hbFNlbGVjdCwgdGhpc09iaik7CiAgICAgCkBAIC00NzIsOCArNDcyLDggQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgc19vcE5hbWVzWzE2XTsKIAog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHg1ZjIwN2MwMDsKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MWUyMDQwMDA7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHg1ZjIwN2MwMDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDFlMjA0MDAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19G
T1JNQVQoQTY0RE9wY29kZUZsb2F0aW5nUG9pbnREYXRhUHJvY2Vzc2luZzFTb3VyY2UsIHRoaXNP
YmopOwogCkBAIC00ODksOCArNDg5LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hh
ciogY29uc3Qgc19vcE5hbWVzWzE2XTsKIAogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50
MzJfdCBtYXNrID0gMHg1ZjIwMDgwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVy
biA9IDB4MWUyMDA4MDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHg1
ZjIwMDgwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDFlMjAw
ODAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUZsb2F0aW5nUG9pbnRE
YXRhUHJvY2Vzc2luZzJTb3VyY2UsIHRoaXNPYmopOwogCkBAIC01MDYsOCArNTA2LDggQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgc19vcE5hbWVzWzRdOwogICAgIAog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHg1ZjIwMDAwMDsKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MWUwMDAwMDA7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHg1ZjIwMDAwMDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDFlMDAwMDAwOwogICAgIAogICAgIERFRklORV9TVEFU
SUNfRk9STUFUKEE2NERPcGNvZGVGbG9hdGluZ0ZpeGVkUG9pbnRDb252ZXJzaW9ucywgdGhpc09i
aik7CiAgICAgCkBAIC01MjUsOCArNTI1LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogY29uc3Qgc19vcE5hbWVzWzMyXTsKICAgICAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3QgdWludDMyX3QgbWFzayA9IDB4NWYyMGZjMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90
IHBhdHRlcm4gPSAweDFlMjAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFz
ayA9IDB4NWYyMGZjMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0g
MHgxZTIwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVGbG9hdGlu
Z1BvaW50SW50ZWdlckNvbnZlcnNpb25zLCB0aGlzT2JqKTsKIApAQCAtNTUwLDggKzU1MCw4IEBA
IHB1YmxpYzoKIAogY2xhc3MgQTY0RE9wY29kZU1TUkltbWVkaWF0ZSA6IHB1YmxpYyBBNjRET3Bj
b2RlU3lzdGVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4
ZmZmOGYwMWY7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweGQ1MDA0MDFm
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4ZmZmOGYwMWY7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHhkNTAwNDAxZjsKIAogICAgIERF
RklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVNU1JJbW1lZGlhdGUsIHRoaXNPYmopOwogCkBA
IC01NjAsOCArNTYwLDggQEAgcHVibGljOgogCiBjbGFzcyBBNjRET3Bjb2RlTVNST3JNUlNSZWdp
c3RlciA6IHB1YmxpYyBBNjRET3Bjb2RlU3lzdGVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3QgdWludDMyX3QgbWFzayA9IDB4ZmZkMDAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90
IHBhdHRlcm4gPSAweGQ1MTAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFz
ayA9IDB4ZmZkMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0g
MHhkNTEwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVNU1JPck1S
U1JlZ2lzdGVyLCB0aGlzT2JqKTsKIApAQCAtNTc2LDggKzU3Niw4IEBAIHByaXZhdGU6CiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNfb3BOYW1lc1szMl07CiAKIHB1YmxpYzoKLSAgICBz
dGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4ZmZmZmYwMWY7Ci0gICAgc3RhdGljIGNvbnN0
IHVpbnQzMl90IHBhdHRlcm4gPSAweGQ1MDMyMDFmOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWlu
dDMyX3QgbWFzayA9IDB4ZmZmZmYwMWY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBw
YXR0ZXJuID0gMHhkNTAzMjAxZjsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNv
ZGVIaW50LCB0aGlzT2JqKTsKIApAQCAtNTkyLDggKzU5Miw4IEBAIGNsYXNzIEE2NERPcGNvZGVT
eXN0ZW1TeW5jIDogcHVibGljIEE2NEQKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgc19v
cHRpb25OYW1lc1sxNl07CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFz
ayA9IDB4ZmZmZmYwMWY7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweGQ1
MDMzMDFmOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4ZmZmZmYwMWY7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHhkNTAzMzAxZjsKIAog
ICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVTeXN0ZW1TeW5jLCB0aGlzT2JqKTsK
IApAQCAtNjI1LDggKzYyNSw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNv
bnN0IHNfb3BOYW1lc1s2NF07CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qg
bWFzayA9IDB4M2YwMDAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAw
eDA4MDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4M2YwMDAw
MDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHgwODAwMDAwMDsK
IAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVMb2FkU3RvcmVFeGNsdXNpdmUs
IHRoaXNPYmopOwogCkBAIC02NTMsOCArNjUzLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29u
c3QgY2hhciogY29uc3Qgc191bnNjYWxlZE9wTmFtZXNbMzJdOwogCiBwdWJsaWM6Ci0gICAgc3Rh
dGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDNiMjAwMDAwOwotICAgIHN0YXRpYyBjb25zdCB1
aW50MzJfdCBwYXR0ZXJuID0gMHgzODAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQz
Ml90IG1hc2sgPSAweDNiMjAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0
dGVybiA9IDB4MzgwMDAwMDA7CiAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2Rl
TG9hZFN0b3JlSW1tZWRpYXRlLCB0aGlzT2JqKTsKIApAQCAtNjc0LDggKzY3NCw4IEBAIHB1Ymxp
YzoKIAogY2xhc3MgQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyT2Zmc2V0IDogcHVibGljIEE2
NERPcGNvZGVMb2FkU3RvcmUgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBt
YXNrID0gMHgzYjIwMGMwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4
MzgyMDA4MDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHgzYjIwMGMw
MDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDM4MjAwODAwOwog
CiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyT2Zm
c2V0LCB0aGlzT2JqKTsKIApAQCAtNjk2LDggKzY5Niw4IEBAIHByb3RlY3RlZDoKICAgICB9CiAK
IHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4ZmYyMDA0MDA7Ci0g
ICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweGY4MjAwNDAwOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4ZmYyMDA0MDA7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHhmODIwMDQwMDsKICAgICAKICAgICBERUZJTkVfU1RB
VElDX0ZPUk1BVChBNjRET3Bjb2RlTG9hZFN0b3JlQXV0aGVudGljYXRlZCwgdGhpc09iaik7CiAg
ICAgCkBAIC03MTMsOCArNzEzLDggQEAgcHVibGljOgogCiBjbGFzcyBBNjRET3Bjb2RlTG9hZFN0
b3JlUmVnaXN0ZXJQYWlyIDogcHVibGljIEE2NERPcGNvZGVMb2FkU3RvcmUgewogcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHgzYTAwMDAwMDsKLSAgICBzdGF0aWMg
Y29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MjgwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1aW50MzJfdCBtYXNrID0gMHgzYTAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQz
Ml90IHBhdHRlcm4gPSAweDI4MDAwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0
RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciwgdGhpc09iaik7CiAKQEAgLTcyOSw4ICs3Mjks
OCBAQCBwdWJsaWM6CiAKIGNsYXNzIEE2NERPcGNvZGVMb2FkU3RvcmVVbnNpZ25lZEltbWVkaWF0
ZSA6IHB1YmxpYyBBNjRET3Bjb2RlTG9hZFN0b3JlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3QgdWludDMyX3QgbWFzayA9IDB4M2IwMDAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90
IHBhdHRlcm4gPSAweDM5MDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFz
ayA9IDB4M2IwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0g
MHgzOTAwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVMb2FkU3Rv
cmVVbnNpZ25lZEltbWVkaWF0ZSwgdGhpc09iaik7CiAKQEAgLTc1NSw4ICs3NTUsOCBAQCBwdWJs
aWM6CiAKIGNsYXNzIEE2NERPcGNvZGVMb2dpY2FsSW1tZWRpYXRlIDogcHVibGljIEE2NERPcGNv
ZGVMb2dpY2FsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4
MWY4MDAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDEyMDAwMDAw
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4MWY4MDAwMDA7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHgxMjAwMDAwMDsKIAogICAgIERF
RklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVMb2dpY2FsSW1tZWRpYXRlLCB0aGlzT2JqKTsK
IApAQCAtNzcyLDggKzc3Miw4IEBAIHB1YmxpYzoKIAogY2xhc3MgQTY0RE9wY29kZUxvZ2ljYWxT
aGlmdGVkUmVnaXN0ZXIgOiBwdWJsaWMgQTY0RE9wY29kZUxvZ2ljYWwgewogcHVibGljOgotICAg
IHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHgxZjAwMDAwMDsKLSAgICBzdGF0aWMgY29u
c3QgdWludDMyX3QgcGF0dGVybiA9IDB4MGEwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50MzJfdCBtYXNrID0gMHgxZjAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90
IHBhdHRlcm4gPSAweDBhMDAwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9w
Y29kZUxvZ2ljYWxTaGlmdGVkUmVnaXN0ZXIsIHRoaXNPYmopOwogCkBAIC03OTEsOCArNzkxLDgg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgc19vcE5hbWVzWzRdOwog
CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDFmODAwMDAwOwot
ICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHgxMjgwMDAwMDsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweDFmODAwMDAwOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4MTI4MDAwMDA7CiAKICAgICBERUZJTkVfU1RBVElD
X0ZPUk1BVChBNjRET3Bjb2RlTW92ZVdpZGUsIHRoaXNPYmopOwogCkBAIC04MDYsOCArODA2LDgg
QEAgcHVibGljOgogCiBjbGFzcyBBNjRET3Bjb2RlVGVzdEFuZEJyYW5jaEltbWVkaWF0ZSA6IHB1
YmxpYyBBNjRET3Bjb2RlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFz
ayA9IDB4N2UwMDAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDM2
MDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4N2UwMDAwMDA7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHgzNjAwMDAwMDsKIAog
ICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVUZXN0QW5kQnJhbmNoSW1tZWRpYXRl
LCB0aGlzT2JqKTsKIApAQCAtODIwLDggKzgyMCw4IEBAIHB1YmxpYzoKIAogY2xhc3MgQTY0RE9w
Y29kZVVuY29uZGl0aW9uYWxCcmFuY2hJbW1lZGlhdGUgOiBwdWJsaWMgQTY0RE9wY29kZSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDdjMDAwMDAwOwotICAg
IHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHgxNDAwMDAwMDsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweDdjMDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdWludDMyX3QgcGF0dGVybiA9IDB4MTQwMDAwMDA7CiAKICAgICBERUZJTkVfU1RBVElDX0ZP
Uk1BVChBNjRET3Bjb2RlVW5jb25kaXRpb25hbEJyYW5jaEltbWVkaWF0ZSwgdGhpc09iaik7CiAK
QEAgLTgzNyw4ICs4MzcsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25z
dCBzX0F1dGhPcE5hbWVzWzIwXTsKIAogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJf
dCBtYXNrID0gMHhmZTFmMDAwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9
IDB4ZDYxZjAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHhmZTFm
MDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweGQ2MWYwMDAw
OwogCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZVVuY29uZGl0aW9uYWxCcmFu
Y2hSZWdpc3RlciwgdGhpc09iaik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG9jYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvY2F0aW9uLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG9jYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE5MSw3ICsxOTEsNyBAQCBwcml2
YXRlOgogc3RydWN0IExvY2F0aW9uSGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29u
c3QgTG9jYXRpb24mIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRpYyBib29s
IGVxdWFsKGNvbnN0IExvY2F0aW9uJiBhLCBjb25zdCBMb2NhdGlvbiYgYikgeyByZXR1cm4gYSA9
PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0
eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9C
My5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5MjksNyArMjkyOSw3IEBAIHByaXZhdGU6CiAKICAg
ICAgICAgLy8gQ29udmVydCBgKDUzYml0IGRvdWJsZSBpbnRlZ2VyIHZhbHVlKSAvICgxIDw8IDUz
KWAgdG8gYCg1M2JpdCBkb3VibGUgaW50ZWdlciB2YWx1ZSkgKiAoMS4wIC8gKDEgPDwgNTMpKWAu
CiAgICAgICAgIC8vIEluIGxhdHRlciBjYXNlLCBgMS4wIC8gKDEgPDwgNTMpYCB3aWxsIGJlY29t
ZSBhIGRvdWJsZSB2YWx1ZSByZXByZXNlbnRlZCBhcyAobWFudGlzc2EgPSAwICYgZXhwID0gOTcw
LCBpdCBtZWFucyAxZS0oMioqNTQpKS4KLSAgICAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBzY2Fs
ZSA9IDEuMCAvICgxVUxMIDw8IDUzKTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBkb3VibGUg
c2NhbGUgPSAxLjAgLyAoMVVMTCA8PCA1Myk7CiAKICAgICAgICAgLy8gTXVsdGlwbHlpbmcgMWUt
KDIqKjU0KSB3aXRoIHRoZSBkb3VibGUgaW50ZWdlciBkb2VzIG5vdCBjaGFuZ2UgYW55dGhpbmcg
b2YgdGhlIG1hbnRpc3NhIHBhcnQgb2YgdGhlIGRvdWJsZSBpbnRlZ2VyLgogICAgICAgICAvLyBJ
dCBqdXN0IHJlZHVjZXMgdGhlIGV4cCBwYXJ0IG9mIHRoZSBnaXZlbiA1M2JpdCBkb3VibGUgaW50
ZWdlci4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2Fs
bC5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
U2xvd1BhdGhDYWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIAogLy8gVGhpcyBjb2RlIHJlbGllcyBvbiB1cyBi
ZWluZyA2NC1iaXQuIEZUTCBpcyBjdXJyZW50bHkgYWx3YXlzIDY0LWJpdC4KLXN0YXRpYyBjb25z
dCBzaXplX3Qgd29yZFNpemUgPSA4Oworc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qgd29yZFNpemUg
PSA4OwogCiBTbG93UGF0aENhbGxDb250ZXh0OjpTbG93UGF0aENhbGxDb250ZXh0KAogICAgIFJl
Z2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMsIENDYWxsSGVscGVycyYgaml0LCB1bnNpZ25lZCBudW1B
cmdzLCBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTFNsb3dQYXRoQ2FsbEtleS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsS2V5LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsS2V5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0xMTAsNyArMTEwLDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBTbG93UGF0aENhbGxLZXlIYXNo
IHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBTbG93UGF0aENhbGxLZXkmIGtleSkg
eyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFNsb3dQ
YXRoQ2FsbEtleSYgYSwgY29uc3QgU2xvd1BhdGhDYWxsS2V5JiBiKSB7IHJldHVybiBhID09IGI7
IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9
IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9y
RGVsZXRlZCA9IGZhbHNlOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ2VsbENvbnRhaW5lci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NlbGxDb250YWluZXIuaAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ2VsbENvbnRhaW5lci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKICAgICBXZWFrU2V0JiB3ZWFrU2V0
KCkgY29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3QgaXNM
YXJnZUFsbG9jYXRpb25CaXQgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IGlz
TGFyZ2VBbGxvY2F0aW9uQml0ID0gMTsKICAgICB1aW50cHRyX3QgbV9lbmNvZGVkUG9pbnRlcjsK
IH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NlbGxTdGF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NlbGxTdGF0ZS5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9DZWxsU3RhdGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTQ1LDggKzQ1LDggQEAgZW51bSBjbGFzcyBDZWxsU3RhdGUgOiB1aW50
OF90IHsKICAgICBQb3NzaWJseUdyZXkgPSAyCiB9OwogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQg
YmxhY2tUaHJlc2hvbGQgPSAwOyAvLyB4IDw9IGJsYWNrVGhyZXNob2xkIG1lYW5zIHggaXMgUG9z
c2libHlPbGRPckJsYWNrLgotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRhdXRvbG9naWNhbFRocmVz
aG9sZCA9IDEwMDsgLy8geCA8PSB0YXV0b2xvZ2ljYWxUaHJlc2hvbGQgaXMgYWx3YXlzIHRydWUu
CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJsYWNrVGhyZXNob2xkID0gMDsgLy8geCA8PSBi
bGFja1RocmVzaG9sZCBtZWFucyB4IGlzIFBvc3NpYmx5T2xkT3JCbGFjay4KK3N0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgdGF1dG9sb2dpY2FsVGhyZXNob2xkID0gMTAwOyAvLyB4IDw9IHRhdXRv
bG9naWNhbFRocmVzaG9sZCBpcyBhbHdheXMgdHJ1ZS4KIAogaW5saW5lIGJvb2wgaXNXaXRoaW5U
aHJlc2hvbGQoQ2VsbFN0YXRlIGNlbGxTdGF0ZSwgdW5zaWduZWQgdGhyZXNob2xkKQogewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9vdHMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRpdmVSb290cy5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRp
dmVSb290cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDktMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ1LDggKzQ1LDggQEAgcHVibGljOgogICAg
IEhlYXBDZWxsKiogcm9vdHMoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IGlubGluZUNhcGFjaXR5ID0gMTI4OwotICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgbm9u
SW5saW5lQ2FwYWNpdHkgPSA4MTkyIC8gc2l6ZW9mKEhlYXBDZWxsKik7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBzaXplX3QgaW5saW5lQ2FwYWNpdHkgPSAxMjg7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBzaXplX3Qgbm9uSW5saW5lQ2FwYWNpdHkgPSA4MTkyIC8gc2l6ZW9mKEhlYXBDZWxsKik7CiAg
ICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFya0hvb2s+CiAgICAgdm9pZCBnZW5lcmljQWRk
UG9pbnRlcih2b2lkKiwgSGVhcFZlcnNpb24gbWFya2luZ1ZlcnNpb24sIEhlYXBWZXJzaW9uIG5l
d2x5QWxsb2NhdGVkVmVyc2lvbiwgVGlueUJsb29tRmlsdGVyLCBNYXJrSG9vayYpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NTZWdtZW50ZWRBcnJheS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDU2VnbWVudGVkQXJyYXkuaAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NTZWdtZW50ZWRBcnJh
eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBiaXR3aXNlX2Nhc3Q8VCo+KHRoaXMgKyAxKTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29u
c3Qgc2l6ZV90IGJsb2NrU2l6ZSA9IDQgKiBLQjsKKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVf
dCBibG9ja1NpemUgPSA0ICogS0I7CiAKICAgICBHQ0FycmF5U2VnbWVudCogbV9wcmV2OwogICAg
IEdDQXJyYXlTZWdtZW50KiBtX25leHQ7CkBAIC05MCw3ICs5MCw3IEBAIHB1YmxpYzoKIAogcHJv
dGVjdGVkOgogICAgIHRlbXBsYXRlIDxzaXplX3Qgc2l6ZT4gc3RydWN0IENhcGFjaXR5RnJvbVNp
emUgewotICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHZhbHVlID0gKHNpemUgLSBzaXplb2Yo
R0NBcnJheVNlZ21lbnQ8VD4pKSAvIHNpemVvZihUKTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciBzaXplX3QgdmFsdWUgPSAoc2l6ZSAtIHNpemVvZihHQ0FycmF5U2VnbWVudDxUPikpIC8gc2l6
ZW9mKFQpOwogICAgIH07CiAKICAgICB2b2lkIGV4cGFuZCgpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGFuZGxlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IYW5kbGVCbG9jay5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDcgKzM5
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSGFuZGxlQmxvY2sqKTsKICAg
ICBzdGF0aWMgSGFuZGxlQmxvY2sqIGJsb2NrRm9yKEhhbmRsZU5vZGUqKTsKIAotICAgIHN0YXRp
YyBjb25zdCBzaXplX3QgYmxvY2tTaXplID0gNCAqIEtCOworICAgIHN0YXRpYyBjb25zdGV4cHIg
c2l6ZV90IGJsb2NrU2l6ZSA9IDQgKiBLQjsKIAogICAgIEhhbmRsZVNldCogaGFuZGxlU2V0KCk7
CiAKQEAgLTUzLDcgKzUzLDcgQEAgcHJpdmF0ZToKICAgICBjaGFyKiBwYXlsb2FkKCk7CiAgICAg
Y2hhciogcGF5bG9hZEVuZCgpOwogCi0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBzX2Jsb2NrTWFz
ayA9IH4oYmxvY2tTaXplIC0gMSk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qgc19ibG9j
a01hc2sgPSB+KGJsb2NrU2l6ZSAtIDEpOwogCiAgICAgSGFuZGxlQmxvY2sqIG1fcHJldjsKICAg
ICBIYW5kbGVCbG9jayogbV9uZXh0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5j
cHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjU0LDcgKzIyNTQsNyBAQCB2b2lkIEhlYXA6Om5vdGlm
eUluY3JlbWVudGFsU3dlZXBlcigpCiAKIHZvaWQgSGVhcDo6dXBkYXRlQWxsb2NhdGlvbkxpbWl0
cygpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCiAgICAgaWYgKHZlcmJvc2Up
IHsKICAgICAgICAgZGF0YUxvZygiXG4iKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
aAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDcgKzEyMSw3IEBAIHB1YmxpYzoKICAgICAvLyBkZWFk
bGluZSB3aGVuIGNhbGxpbmcgSGVhcDo6aXNQYWdlZE91dC4gRGVjcmVhc2luZyBpdCB3aWxsIGNh
dXNlIHVzIHRvIGRldGVjdCAKICAgICAvLyBvdmVyc3RlcHBpbmcgb3VyIGRlYWRsaW5lIG1vcmUg
cXVpY2tseSwgd2hpbGUgaW5jcmVhc2luZyBpdCB3aWxsIGNhdXNlIAogICAgIC8vIG91ciBzY2Fu
IHRvIHJ1biBmYXN0ZXIuIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX3RpbWVDaGVja1Jl
c29sdXRpb24gPSAxNjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNfdGltZUNoZWNr
UmVzb2x1dGlvbiA9IDE2OwogCiAgICAgYm9vbCBpc01hcmtlZChjb25zdCB2b2lkKik7CiAgICAg
c3RhdGljIGJvb2wgdGVzdEFuZFNldE1hcmtlZChIZWFwVmVyc2lvbiwgY29uc3Qgdm9pZCopOwpA
QCAtNDI4LDcgKzQyOCw3IEBAIHByaXZhdGU6CiAgICAgY2xhc3MgSGVhcFRocmVhZDsKICAgICBm
cmllbmQgY2xhc3MgSGVhcFRocmVhZDsKIAotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWluRXh0
cmFNZW1vcnkgPSAyNTY7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWluRXh0cmFNZW1v
cnkgPSAyNTY7CiAgICAgCiAgICAgY2xhc3MgRmluYWxpemVyT3duZXIgOiBwdWJsaWMgV2Vha0hh
bmRsZU93bmVyIHsKICAgICAgICAgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4sIHZvaWQq
IGNvbnRleHQpIG92ZXJyaWRlOwpAQCAtNjc4LDcgKzY3OCw3IEBAIHByaXZhdGU6CiAgICAgdW5z
aWduZWQgbV9udW1iZXJPZldhaXRpbmdQYXJhbGxlbE1hcmtlcnMgeyAwIH07CiAKICAgICBDb25j
dXJyZW50UHRySGFzaFNldCBtX29wYXF1ZVJvb3RzOwotICAgIHN0YXRpYyBjb25zdCBzaXplX3Qg
c19ibG9ja0ZyYWdtZW50TGVuZ3RoID0gMzI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qg
c19ibG9ja0ZyYWdtZW50TGVuZ3RoID0gMzI7CiAKICAgICBQYXJhbGxlbEhlbHBlckNsaWVudCBt
X2hlbHBlckNsaWVudDsKICAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkKFNsb3RWaXNpdG9yJik+
PiBtX2JvbnVzVmlzaXRvclRhc2s7CkBAIC02OTAsMTIgKzY5MCwxMiBAQCBwcml2YXRlOgogICAg
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxNdXRhdG9yU2NoZWR1bGVyPiBtX3NjaGVkdWxlcjsKICAg
ICAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbXV0YXRvckhhc0Nvbm5CaXQgPSAxdSA8PCAw
dTsgLy8gTXVzdCBhbHNvIGJlIHByb3RlY3RlZCBieSB0aHJlYWRMb2NrLgotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBzdG9wcGVkQml0ID0gMXUgPDwgMXU7IC8vIE9ubHkgc2V0IHdoZW4gIWhh
c0FjY2Vzc0JpdAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBoYXNBY2Nlc3NCaXQgPSAxdSA8
PCAydTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZ2NEaWRKSVRCaXQgPSAxdSA8PCAzdTsg
Ly8gU2V0IHdoZW4gdGhlIEdDIGRpZCBzb21lIEpJVGluZywgc28gb24gcmVzdW1lIHdlIG5lZWQg
dG8gY3B1aWQuCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG5lZWRGaW5hbGl6ZUJpdCA9IDF1
IDw8IDR1OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtdXRhdG9yV2FpdGluZ0JpdCA9IDF1
IDw8IDV1OyAvLyBBbGxvd3MgdGhlIG11dGF0b3IgdG8gdXNlIHRoaXMgYXMgYSBjb25kaXRpb24g
dmFyaWFibGUuCisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtdXRhdG9ySGFzQ29ubkJp
dCA9IDF1IDw8IDB1OyAvLyBNdXN0IGFsc28gYmUgcHJvdGVjdGVkIGJ5IHRocmVhZExvY2suCisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzdG9wcGVkQml0ID0gMXUgPDwgMXU7IC8vIE9u
bHkgc2V0IHdoZW4gIWhhc0FjY2Vzc0JpdAorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
aGFzQWNjZXNzQml0ID0gMXUgPDwgMnU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBn
Y0RpZEpJVEJpdCA9IDF1IDw8IDN1OyAvLyBTZXQgd2hlbiB0aGUgR0MgZGlkIHNvbWUgSklUaW5n
LCBzbyBvbiByZXN1bWUgd2UgbmVlZCB0byBjcHVpZC4KKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG5lZWRGaW5hbGl6ZUJpdCA9IDF1IDw8IDR1OworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgbXV0YXRvcldhaXRpbmdCaXQgPSAxdSA8PCA1dTsgLy8gQWxsb3dzIHRoZSBtdXRh
dG9yIHRvIHVzZSB0aGlzIGFzIGEgY29uZGl0aW9uIHZhcmlhYmxlLgogICAgIEF0b21pYzx1bnNp
Z25lZD4gbV93b3JsZFN0YXRlOwogICAgIGJvb2wgbV93b3JsZElzU3RvcHBlZCB7IGZhbHNlIH07
CiAgICAgTG9jayBtX3Zpc2l0UmFjZUxvY2s7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwU25hcHNob3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwU25hcHNob3QuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDksNyArNDksNyBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIEhlYXBTbmFwc2hvdEJ1aWxkZXI7
Ci0gICAgc3RhdGljIGNvbnN0IGludHB0cl90IENlbGxUb1N3ZWVwVGFnID0gMTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGludHB0cl90IENlbGxUb1N3ZWVwVGFnID0gMTsKIAogICAgIFZlY3RvcjxI
ZWFwU25hcHNob3ROb2RlPiBtX25vZGVzOwogICAgIFRpbnlCbG9vbUZpbHRlciBtX2ZpbHRlcjsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBVdGlsLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFV0aWwuaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFV0aWwuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBIYXNoU2V0PE1hcmtl
ZEJsb2NrKj4mIHNldCA9IGhlYXAub2JqZWN0U3BhY2UoKS5ibG9ja3MoKS5zZXQoKTsKICAgICAg
ICAgCiAgICAgICAgIEFTU0VSVChoZWFwLm9iamVjdFNwYWNlKCkuaXNNYXJraW5nKCkpOwotICAg
ICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc01hcmtpbmcgPSB0cnVlOworICAgICAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgaXNNYXJraW5nID0gdHJ1ZTsKICAgICAgICAgCiAgICAgICAgIGNoYXIq
IHBvaW50ZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4ocGFzc2VkUG9pbnRlcik7CiAgICAgICAgIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVw
ZXIuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9J
bmNyZW1lbnRhbFN3ZWVwZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsOSArMzQsOSBAQAog
CiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIGNvbnN0IFNlY29uZHMgc3dlZXBUaW1lU2xpY2Ug
PSAxMF9tczsKLXN0YXRpYyBjb25zdCBkb3VibGUgc3dlZXBUaW1lVG90YWwgPSAuMTA7Ci1zdGF0
aWMgY29uc3QgZG91YmxlIHN3ZWVwVGltZU11bHRpcGxpZXIgPSAxLjAgLyBzd2VlcFRpbWVUb3Rh
bDsKK3N0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBzd2VlcFRpbWVTbGljZSA9IDEwX21zOworc3Rh
dGljIGNvbnN0ZXhwciBkb3VibGUgc3dlZXBUaW1lVG90YWwgPSAuMTA7CitzdGF0aWMgY29uc3Rl
eHByIGRvdWJsZSBzd2VlcFRpbWVNdWx0aXBsaWVyID0gMS4wIC8gc3dlZXBUaW1lVG90YWw7CiAK
IHZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpzY2hlZHVsZVRpbWVyKCkKIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0xhcmdlQWxsb2NhdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0xhcmdlQWxsb2NhdGlvbi5oCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9MYXJnZUFsbG9jYXRpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtMTQ1LDggKzE0NSw4IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGR1
bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
YWxpZ25tZW50ID0gTWFya2VkQmxvY2s6OmF0b21TaXplOwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBoYWxmQWxpZ25tZW50ID0gYWxpZ25tZW50IC8gMjsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIGFsaWdubWVudCA9IE1hcmtlZEJsb2NrOjphdG9tU2l6ZTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIGhhbGZBbGlnbm1lbnQgPSBhbGlnbm1lbnQgLyAyOwogCiBwcml2
YXRlOgogICAgIExhcmdlQWxsb2NhdGlvbihIZWFwJiwgc2l6ZV90LCBTdWJzcGFjZSosIHVuc2ln
bmVkIGluZGV4SW5TcGFjZSwgYm9vbCBhZGp1c3RlZEFsaWdubWVudCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0LDcgKzQ0LDcgQEAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKIAogY29uc3Qgc2l6ZV90IE1hcmtlZEJsb2NrOjpibG9ja1NpemU7CiAKLXN0YXRpYyBjb25z
dCBib29sIGNvbXB1dGVCYWxhbmNlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgY29t
cHV0ZUJhbGFuY2UgPSBmYWxzZTsKIHN0YXRpYyBzaXplX3QgYmFsYW5jZTsKIAogTWFya2VkQmxv
Y2s6OkhhbmRsZSogTWFya2VkQmxvY2s6OnRyeUNyZWF0ZShIZWFwJiBoZWFwLCBBbGlnbmVkTWVt
b3J5QWxsb2NhdG9yKiBhbGlnbmVkTWVtb3J5QWxsb2NhdG9yKQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvU3Ryb25nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU3Ryb25nLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1N0cm9uZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsNyArMTQ2LDcgQEAgdGVt
cGxhdGU8Y2xhc3MgVD4gaW5saW5lIHZvaWQgc3dhcChTdHJvbgogbmFtZXNwYWNlIFdURiB7CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBWZWN0b3JUcmFpdHM8SlNDOjpTdHJvbmc8VD4+
IDogU2ltcGxlQ2xhc3NWZWN0b3JUcmFpdHMgewotICAgIHN0YXRpYyBjb25zdCBib29sIGNhbkNv
bXBhcmVXaXRoTWVtY21wID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbkNv
bXBhcmVXaXRoTWVtY21wID0gZmFsc2U7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQPiBzdHJ1
Y3QgSGFzaFRyYWl0czxKU0M6OlN0cm9uZzxQPj4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlND
OjpTdHJvbmc8UD4+IHsgfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Zpc2l0
UmFjZUtleS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Zpc2l0
UmFjZUtleS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9WaXNpdFJhY2VLZXkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiBz
dHJ1Y3QgVmlzaXRSYWNlS2V5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3Qg
VmlzaXRSYWNlS2V5JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9v
bCBlcXVhbChjb25zdCBWaXNpdFJhY2VLZXkmIGEsIGNvbnN0IFZpc2l0UmFjZUtleSYgYikgeyBy
ZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1w
dHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTIsIDIwMTMsIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC05Nyw3ICs5Nyw3IEBAIHByaXZhdGU6CiBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IFZlY3RvclRyYWl0czxKU0M6OldlYWs8VD4+IDogU2ltcGxlQ2xh
c3NWZWN0b3JUcmFpdHMgewotICAgIHN0YXRpYyBjb25zdCBib29sIGNhbkNvbXBhcmVXaXRoTWVt
Y21wID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbkNvbXBhcmVXaXRoTWVt
Y21wID0gZmFsc2U7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0
czxKU0M6OldlYWs8VD4+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6V2VhazxUPj4gewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmgJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBTbG90VmlzaXRvcjsKIGNsYXNzIFdlYWtCbG9j
ayA6IHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxXZWFrQmxvY2s+IHsKIHB1YmxpYzoKICAg
ICBmcmllbmQgY2xhc3MgV1RGOjpEb3VibHlMaW5rZWRMaXN0Tm9kZTxXZWFrQmxvY2s+OwotICAg
IHN0YXRpYyBjb25zdCBzaXplX3QgYmxvY2tTaXplID0gMjU2OyAvLyAxLzE2IG9mIE1hcmtlZEJs
b2NrIHNpemUKKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBibG9ja1NpemUgPSAyNTY7IC8v
IDEvMTYgb2YgTWFya2VkQmxvY2sgc2l6ZQogCiAgICAgc3RydWN0IEZyZWVDZWxsIHsKICAgICAg
ICAgRnJlZUNlbGwqIG5leHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5oCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBJbmplY3RlZFNjcmlwdEhvc3Q7CiBj
bGFzcyBKU0luamVjdGVkU2NyaXB0SG9zdCBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTRGVzdHJ1Y3Rp
YmxlT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQzo6SlNEZXN0cnVjdGlibGVPYmpl
Y3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBERUNMQVJFX0lORk87CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5
cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3Igewog
Y2xhc3MgSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQzo6SlNOb25GaW5hbE9i
amVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Q7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Q7CiAKICAgICBERUNM
QVJFX0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZh
U2NyaXB0Q2FsbEZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWUuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogY2xhc3MgSlNK
YXZhU2NyaXB0Q2FsbEZyYW1lIGZpbmFsIDogcHVibGljIEpTQzo6SlNEZXN0cnVjdGlibGVPYmpl
Y3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCBCYXNl
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIERFQ0xBUkVfSU5GTzsKIApAQCAtNzEsMTMg
KzcxLDEzIEBAIHB1YmxpYzoKICAgICBKU0M6OkpTVmFsdWUgaXNUYWlsRGVsZXRlZChKU0M6OkV4
ZWNTdGF0ZSopIGNvbnN0OwogCiAgICAgLy8gQ29uc3RhbnRzLgotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBzaG9ydCBHTE9CQUxfU0NPUEUgPSAwOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBXSVRIX1NDT1BFID0gMTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQg
Q0xPU1VSRV9TQ09QRSA9IDI7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IENBVENI
X1NDT1BFID0gMzsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgRlVOQ1RJT05fTkFN
RV9TQ09QRSA9IDQ7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IEdMT0JBTF9MRVhJ
Q0FMX0VOVklST05NRU5UX1NDT1BFID0gNTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hv
cnQgTkVTVEVEX0xFWElDQUxfU0NPUEUgPSA2OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgc2hvcnQgR0xPQkFMX1NDT1BFID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IHNob3J0IFdJVEhfU0NPUEUgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc2hv
cnQgQ0xPU1VSRV9TQ09QRSA9IDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzaG9y
dCBDQVRDSF9TQ09QRSA9IDM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzaG9ydCBG
VU5DVElPTl9OQU1FX1NDT1BFID0gNDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNo
b3J0IEdMT0JBTF9MRVhJQ0FMX0VOVklST05NRU5UX1NDT1BFID0gNTsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIHNob3J0IE5FU1RFRF9MRVhJQ0FMX1NDT1BFID0gNjsKIAogcHJvdGVj
dGVkOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlw
dENhbGxGcmFtZVByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBKU0ph
dmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFs
T2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQzo6SlNOb25GaW5hbE9iamVjdCBCYXNl
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Q7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Q7CiAKICAgICBERUNMQVJFX0lORk87
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNvbnNvbGVBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29u
c29sZUFnZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE0LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBJbnNwZWN0b3Ig
ewogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4aW11bUNvbnNvbGVNZXNzYWdlcyA9IDEwMDsK
LXN0YXRpYyBjb25zdCBpbnQgZXhwaXJlQ29uc29sZU1lc3NhZ2VzU3RlcCA9IDEwOworc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhpbXVtQ29uc29sZU1lc3NhZ2VzID0gMTAwOworc3RhdGlj
IGNvbnN0ZXhwciBpbnQgZXhwaXJlQ29uc29sZU1lc3NhZ2VzU3RlcCA9IDEwOwogCiBJbnNwZWN0
b3JDb25zb2xlQWdlbnQ6Okluc3BlY3RvckNvbnNvbGVBZ2VudChBZ2VudENvbnRleHQmIGNvbnRl
eHQpCiAgICAgOiBJbnNwZWN0b3JBZ2VudEJhc2UoIkNvbnNvbGUiX3MpCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBA
IC0yODMsNyArMjgzLDcgQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OnJlbGVhc2VPYmpl
YwogCiB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UnVudGltZVR5cGVzRm9yVmFyaWFi
bGVzQXRPZmZzZXRzKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgSlNPTjo6QXJyYXkm
IGxvY2F0aW9ucywgUmVmUHRyPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OlJ1bnRpbWU6OlR5cGVE
ZXNjcmlwdGlvbj4+JiB0eXBlRGVzY3JpcHRpb25zKQogewotICAgIHN0YXRpYyBjb25zdCBib29s
IHZlcmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZh
bHNlOwogCiAgICAgdHlwZURlc2NyaXB0aW9ucyA9IEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OlJ1
bnRpbWU6OlR5cGVEZXNjcmlwdGlvbj46OmNyZWF0ZSgpOwogICAgIGlmICghbV92bS50eXBlUHJv
ZmlsZXIoKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L2NvZGVnZW4vZ2VuZXJhdGVfY3BwX3Byb3RvY29sX3R5cGVzX2hlYWRlci5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5l
cmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5CShyZXZpc2lvbiAyNDk5NzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9j
cHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNyArMTAy
LDcgQEAgY2xhc3MgQ3BwUHJvdG9jb2xUeXBlc0hlYWRlckdlbmVyYXRvcihDcAogICAgICAgICAg
ICAgZG9tYWluX2xpbmVzLmFwcGVuZCgnbmFtZXNwYWNlICVzIHsnICUgZG9tYWluLmRvbWFpbl9u
YW1lKQogCiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHZlcnNpb24sIGludCk6Ci0gICAgICAg
ICAgICAgICAgZG9tYWluX2xpbmVzLmFwcGVuZCgnc3RhdGljIGNvbnN0IHVuc2lnbmVkIFZFUlNJ
T04gPSAlczsnICUgdmVyc2lvbikKKyAgICAgICAgICAgICAgICBkb21haW5fbGluZXMuYXBwZW5k
KCdzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFZFUlNJT04gPSAlczsnICUgdmVyc2lvbikKIAog
ICAgICAgICAgICAgZG9tYWluX2xpbmVzLmFwcGVuZCgnfSAvLyAlcycgJSBkb21haW4uZG9tYWlu
X25hbWUpCiAgICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi53cmFwX3dpdGhfZ3VhcmRf
Zm9yX2RvbWFpbihkb21haW4sICdcbicuam9pbihkb21haW5fbGluZXMpKSkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVk
L3ZlcnNpb24uanNvbi1yZXN1bHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdmVyc2lvbi5qc29uLXJl
c3VsdAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdmVyc2lvbi5qc29uLXJlc3VsdAkod29y
a2luZyBjb3B5KQpAQCAtMzE5LDcgKzMxOSw3IEBAIG5hbWVzcGFjZSBQcm90b2NvbCB7CiAKIC8v
IFZlcnNpb25zLgogbmFtZXNwYWNlIFZlcnNpb25Eb21haW4gewotc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFZFUlNJT04gPSA0MjsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgVkVSU0lPTiA9IDQy
OwogfSAvLyBWZXJzaW9uRG9tYWluCiAvLyBFbmQgb2YgdmVyc2lvbnMuCiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTY4LDcgKzE2OCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgIH0KIAogICAgIHVuc2lnbmVkIHNpemVPZlZhcmFyZ3MoQ2FsbEZyYW1lKiBleGVjLCBKU1Zh
bHVlIGFyZ3VtZW50cywgdWludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQpOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBtYXhBcmd1bWVudHMgPSAweDEwMDAwOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbWF4QXJndW1lbnRzID0gMHgxMDAwMDsKICAgICB1bnNpZ25lZCBzaXplRnJh
bWVGb3JWYXJhcmdzKENhbGxGcmFtZSogZXhlYywgVk0mLCBKU1ZhbHVlIGFyZ3VtZW50cywgdW5z
aWduZWQgbnVtVXNlZFN0YWNrU2xvdHMsIHVpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KTsKICAg
ICB1bnNpZ25lZCBzaXplRnJhbWVGb3JGb3J3YXJkQXJndW1lbnRzKENhbGxGcmFtZSogZXhlYywg
Vk0mLCB1bnNpZ25lZCBudW1Vc2VkU3RhY2tTbG90cyk7CiAgICAgdm9pZCBsb2FkVmFyYXJncyhD
YWxsRnJhbWUqIGV4ZWNDYWxsZXIsIFZpcnR1YWxSZWdpc3RlciBmaXJzdEVsZW1lbnREZXN0LCBK
U1ZhbHVlIHNvdXJjZSwgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCBsZW5ndGgpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1NoYWRvd0NoaWNrZW4uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TaGFkb3dDaGlja2Vu
LmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL1NoYWRvd0NoaWNrZW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVz
cGFjZSBKU0MgewogCiBuYW1lc3BhY2UgU2hhZG93Q2hpY2tlbkludGVybmFsIHsKLXN0YXRpYyBj
b25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7CiB9CiAKIHZvaWQgU2hhZG93Q2hpY2tlbjo6UGFja2V0OjpkdW1wKFByaW50U3Ry
ZWFtJiBvdXQpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0JpbmFyeVN3
aXRjaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9CaW5hcnlT
d2l0Y2guY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0JpbmFyeVN3aXRjaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVz
cGFjZSBKU0MgewogCiBuYW1lc3BhY2UgQmluYXJ5U3dpdGNoSW50ZXJuYWwgewotc3RhdGljIGNv
bnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2Ug
PSBmYWxzZTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGdsb2JhbENvdW50ZXI7IC8vIFdlIHVzZSBh
IGRpZmZlcmVudCBzZWVkIGV2ZXJ5IHRpbWUgd2UgYXJlIGludm9rZWQuCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZmbGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlci5oCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZmbGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMTg1LDcgKzE4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByZXBhcmVGb3JT
bG93UGF0aCgpOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBm
YWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogCiAgICAg
Q0NhbGxIZWxwZXJzJiBtX2ppdDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9F
eGVjdXRhYmxlQWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC01OCw3ICs1OCw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgY29uc3QgdW5zaWdu
ZWQgaml0QWxsb2NhdGlvbkdyYW51bGUgPSAzMjsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
aml0QWxsb2NhdGlvbkdyYW51bGUgPSAzMjsKIAogdHlwZWRlZiBXVEY6Ok1ldGFBbGxvY2F0b3JI
YW5kbGUgRXhlY3V0YWJsZU1lbW9yeUhhbmRsZTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9GUFJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9GUFJJbmZvLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvRlBSSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsMzAgKzQwLDMwIEBAIHN0YXRpYyBj
b25zdGV4cHIgRlBSUmVnIEludmFsaWRGUFJSZWcgeyAKIGNsYXNzIEZQUkluZm8gewogcHVibGlj
OgogICAgIHR5cGVkZWYgRlBSUmVnIFJlZ2lzdGVyVHlwZTsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSA2OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBu
dW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gaXM2NEJpdCgpID8gOCA6IDA7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDY7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gaXM2NEJpdCgpID8g
OCA6IDA7CiAKICAgICAvLyBUZW1wb3JhcnkgcmVnaXN0ZXJzLgotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMCA9IFg4NlJlZ2lzdGVyczo6eG1tMDsKLSAgICBzdGF0aWMgY29uc3QgRlBS
UmVnIGZwUmVnVDEgPSBYODZSZWdpc3RlcnM6OnhtbTE7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJl
ZyBmcFJlZ1QyID0gWDg2UmVnaXN0ZXJzOjp4bW0yOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcg
ZnBSZWdUMyA9IFg4NlJlZ2lzdGVyczo6eG1tMzsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZw
UmVnVDQgPSBYODZSZWdpc3RlcnM6OnhtbTQ7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJl
Z1Q1ID0gWDg2UmVnaXN0ZXJzOjp4bW01OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZw
UmVnVDAgPSBYODZSZWdpc3RlcnM6OnhtbTA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcg
ZnBSZWdUMSA9IFg4NlJlZ2lzdGVyczo6eG1tMTsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJl
ZyBmcFJlZ1QyID0gWDg2UmVnaXN0ZXJzOjp4bW0yOworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBS
UmVnIGZwUmVnVDMgPSBYODZSZWdpc3RlcnM6OnhtbTM7CisgICAgc3RhdGljIGNvbnN0ZXhwciBG
UFJSZWcgZnBSZWdUNCA9IFg4NlJlZ2lzdGVyczo6eG1tNDsKKyAgICBzdGF0aWMgY29uc3RleHBy
IEZQUlJlZyBmcFJlZ1Q1ID0gWDg2UmVnaXN0ZXJzOjp4bW01OwogI2lmIENQVShYODZfNjQpCiAg
ICAgLy8gT25seSBYODZfNjQgcGFzc2VzIGFndW1lbnRzIGluIHhtbSByZWdpc3RlcnMKLSAgICBz
dGF0aWMgY29uc3QgRlBSUmVnIGFyZ3VtZW50RlBSMCA9IFg4NlJlZ2lzdGVyczo6eG1tMDsgLy8g
ZnBSZWdUMAotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRGUFIxID0gWDg2UmVnaXN0
ZXJzOjp4bW0xOyAvLyBmcFJlZ1QxCi0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBhcmd1bWVudEZQ
UjIgPSBYODZSZWdpc3RlcnM6OnhtbTI7IC8vIGZwUmVnVDIKLSAgICBzdGF0aWMgY29uc3QgRlBS
UmVnIGFyZ3VtZW50RlBSMyA9IFg4NlJlZ2lzdGVyczo6eG1tMzsgLy8gZnBSZWdUMwotICAgIHN0
YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRGUFI0ID0gWDg2UmVnaXN0ZXJzOjp4bW00OyAvLyBm
cFJlZ1Q0Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBhcmd1bWVudEZQUjUgPSBYODZSZWdpc3Rl
cnM6OnhtbTU7IC8vIGZwUmVnVDUKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGFyZ3VtZW50RlBS
NiA9IFg4NlJlZ2lzdGVyczo6eG1tNjsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGFyZ3VtZW50
RlBSNyA9IFg4NlJlZ2lzdGVyczo6eG1tNzsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBh
cmd1bWVudEZQUjAgPSBYODZSZWdpc3RlcnM6OnhtbTA7IC8vIGZwUmVnVDAKKyAgICBzdGF0aWMg
Y29uc3RleHByIEZQUlJlZyBhcmd1bWVudEZQUjEgPSBYODZSZWdpc3RlcnM6OnhtbTE7IC8vIGZw
UmVnVDEKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBhcmd1bWVudEZQUjIgPSBYODZSZWdp
c3RlcnM6OnhtbTI7IC8vIGZwUmVnVDIKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBhcmd1
bWVudEZQUjMgPSBYODZSZWdpc3RlcnM6OnhtbTM7IC8vIGZwUmVnVDMKKyAgICBzdGF0aWMgY29u
c3RleHByIEZQUlJlZyBhcmd1bWVudEZQUjQgPSBYODZSZWdpc3RlcnM6OnhtbTQ7IC8vIGZwUmVn
VDQKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBhcmd1bWVudEZQUjUgPSBYODZSZWdpc3Rl
cnM6OnhtbTU7IC8vIGZwUmVnVDUKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBhcmd1bWVu
dEZQUjYgPSBYODZSZWdpc3RlcnM6OnhtbTY7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcg
YXJndW1lbnRGUFI3ID0gWDg2UmVnaXN0ZXJzOjp4bW03OwogI2VuZGlmCiAgICAgLy8gT24gWDg2
IHRoZSByZXR1cm4gd2lsbCBhY3R1YWxseSBiZSBvbiB0aGUgeDg3IHN0YWNrLAogICAgIC8vIHNv
IHdlJ2xsIGNvcHkgdG8geG1tMCBmb3Igc2FuaXR5IQotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcg
cmV0dXJuVmFsdWVGUFIgPSBYODZSZWdpc3RlcnM6OnhtbTA7IC8vIGZwUmVnVDAKKyAgICBzdGF0
aWMgY29uc3RleHByIEZQUlJlZyByZXR1cm5WYWx1ZUZQUiA9IFg4NlJlZ2lzdGVyczo6eG1tMDsg
Ly8gZnBSZWdUMAogCiAgICAgLy8gRlBSUmVnIG1hcHBpbmcgaXMgZGlyZWN0LCB0aGUgbWFjaGlu
ZSByZWdzaXRlciBudW1iZXJzIGNhbgogICAgIC8vIGJlIHVzZWQgZGlyZWN0bHkgYXMgaW5kaWNl
cyBpbnRvIHRoZSBGUFIgUmVnaXN0ZXJCYW5rLgpAQCAtOTYsNyArOTYsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6ZnByTmFtZShyZWcpOwogICAgIH0KIAotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbnZhbGlkSW5kZXggPSAweGZmZmZmZmZmOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgSW52YWxpZEluZGV4ID0gMHhmZmZmZmZmZjsKIH07CiAK
ICNlbmRpZiAvLyBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQpAQCAtMTA2LDMwICsxMDYsMzAgQEAg
cHVibGljOgogY2xhc3MgRlBSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBGUFJSZWcgUmVn
aXN0ZXJUeXBlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9
IDY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDY7
CiAKICNpZiBDUFUoQVJNX0hBUkRGUCkKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVy
T2ZBcmd1bWVudFJlZ2lzdGVycyA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBu
dW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gODsKICNlbHNlCi0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSAwOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDA7CiAjZW5kaWYKIAogICAg
IC8vIFRlbXBvcmFyeSByZWdpc3RlcnMuCiAgICAgLy8gZDcgaXMgdXNlIGJ5IHRoZSBNYWNyb0Fz
c2VtYmxlciBhcyBmcFRlbXBSZWdpc3Rlci4KLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDAgPSBBUk1SZWdpc3RlcnM6OmQwOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUMSA9
IEFSTVJlZ2lzdGVyczo6ZDE7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1QyID0gQVJN
UmVnaXN0ZXJzOjpkMjsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDMgPSBBUk1SZWdp
c3RlcnM6OmQzOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUNCA9IEFSTVJlZ2lzdGVy
czo6ZDQ7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1Q1ID0gQVJNUmVnaXN0ZXJzOjpk
NTsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QwID0gQVJNUmVnaXN0ZXJzOjpk
MDsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QxID0gQVJNUmVnaXN0ZXJzOjpk
MTsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QyID0gQVJNUmVnaXN0ZXJzOjpk
MjsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QzID0gQVJNUmVnaXN0ZXJzOjpk
MzsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1Q0ID0gQVJNUmVnaXN0ZXJzOjpk
NDsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1Q1ID0gQVJNUmVnaXN0ZXJzOjpk
NTsKICAgICAvLyBBUk12NyBkb2Vzbid0IHBhc3MgYXJndW1lbnRzIGluIGZwIHJlZ2lzdGVycy4g
VGhlIHJldHVybgogICAgIC8vIHZhbHVlIGlzIGFsc28gYWN0dWFsbHkgaW4gaW50ZWdlciByZWdp
c3RlcnMsIGZvciBub3cKICAgICAvLyB3ZSdsbCByZXR1cm4gaW4gZDAgZm9yIHNpbXBsaWNpdHku
Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyByZXR1cm5WYWx1ZUZQUiA9IEFSTVJlZ2lzdGVyczo6
ZDA7IC8vIGZwUmVnVDAKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyByZXR1cm5WYWx1ZUZQ
UiA9IEFSTVJlZ2lzdGVyczo6ZDA7IC8vIGZwUmVnVDAKIAogI2lmIENQVShBUk1fSEFSREZQKQot
ICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRGUFIwID0gQVJNUmVnaXN0ZXJzOjpkMDsg
Ly8gZnBSZWdUMAotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRGUFIxID0gQVJNUmVn
aXN0ZXJzOjpkMTsgLy8gZnBSZWdUMQorICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGFyZ3Vt
ZW50RlBSMCA9IEFSTVJlZ2lzdGVyczo6ZDA7IC8vIGZwUmVnVDAKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEZQUlJlZyBhcmd1bWVudEZQUjEgPSBBUk1SZWdpc3RlcnM6OmQxOyAvLyBmcFJlZ1QxCiAj
ZW5kaWYKIAogICAgIC8vIEZQUlJlZyBtYXBwaW5nIGlzIGRpcmVjdCwgdGhlIG1hY2hpbmUgcmVn
c2l0ZXIgbnVtYmVycyBjYW4KQEAgLTE2Myw3ICsxNjMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBNYWNyb0Fzc2VtYmxlcjo6ZnByTmFtZShyZWcpOwogICAgIH0KIAotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBJbnZhbGlkSW5kZXggPSAweGZmZmZmZmZmOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgSW52YWxpZEluZGV4ID0gMHhmZmZmZmZmZjsKIH07CiAKICNlbmRpZiAv
LyBDUFUoQVJNKQpAQCAtMTczLDUzICsxNzMsNTMgQEAgcHVibGljOgogY2xhc3MgRlBSSW5mbyB7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBGUFJSZWcgUmVnaXN0ZXJUeXBlOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDIzOwotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gODsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gMjM7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gODsKIAogICAgIC8vIFRlbXBv
cmFyeSByZWdpc3RlcnMuCiAgICAgLy8gcTgtcTE1IGFyZSBjYWxsZWUgc2F2ZWQsIHEzMSBpcyB1
c2UgYnkgdGhlIE1hY3JvQXNzZW1ibGVyIGFzIGZwVGVtcFJlZ2lzdGVyLgotICAgIHN0YXRpYyBj
b25zdCBGUFJSZWcgZnBSZWdUMCA9IEFSTTY0UmVnaXN0ZXJzOjpxMDsKLSAgICBzdGF0aWMgY29u
c3QgRlBSUmVnIGZwUmVnVDEgPSBBUk02NFJlZ2lzdGVyczo6cTE7Ci0gICAgc3RhdGljIGNvbnN0
IEZQUlJlZyBmcFJlZ1QyID0gQVJNNjRSZWdpc3RlcnM6OnEyOwotICAgIHN0YXRpYyBjb25zdCBG
UFJSZWcgZnBSZWdUMyA9IEFSTTY0UmVnaXN0ZXJzOjpxMzsKLSAgICBzdGF0aWMgY29uc3QgRlBS
UmVnIGZwUmVnVDQgPSBBUk02NFJlZ2lzdGVyczo6cTQ7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJl
ZyBmcFJlZ1Q1ID0gQVJNNjRSZWdpc3RlcnM6OnE1OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcg
ZnBSZWdUNiA9IEFSTTY0UmVnaXN0ZXJzOjpxNjsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZw
UmVnVDcgPSBBUk02NFJlZ2lzdGVyczo6cTc7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJl
Z1Q4ID0gQVJNNjRSZWdpc3RlcnM6OnExNjsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDkgPSBBUk02NFJlZ2lzdGVyczo6cTE3OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
MTAgPSBBUk02NFJlZ2lzdGVyczo6cTE4OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
MTEgPSBBUk02NFJlZ2lzdGVyczo6cTE5OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
MTIgPSBBUk02NFJlZ2lzdGVyczo6cTIwOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
MTMgPSBBUk02NFJlZ2lzdGVyczo6cTIxOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
MTQgPSBBUk02NFJlZ2lzdGVyczo6cTIyOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
MTUgPSBBUk02NFJlZ2lzdGVyczo6cTIzOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
MTYgPSBBUk02NFJlZ2lzdGVyczo6cTI0OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
MTcgPSBBUk02NFJlZ2lzdGVyczo6cTI1OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
MTggPSBBUk02NFJlZ2lzdGVyczo6cTI2OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
MTkgPSBBUk02NFJlZ2lzdGVyczo6cTI3OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
MjAgPSBBUk02NFJlZ2lzdGVyczo6cTI4OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
MjEgPSBBUk02NFJlZ2lzdGVyczo6cTI5OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdU
MjIgPSBBUk02NFJlZ2lzdGVyczo6cTMwOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdD
UzAgPSBBUk02NFJlZ2lzdGVyczo6cTg7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ0NT
MSA9IEFSTTY0UmVnaXN0ZXJzOjpxOTsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnQ1My
ID0gQVJNNjRSZWdpc3RlcnM6OnExMDsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnQ1Mz
ID0gQVJNNjRSZWdpc3RlcnM6OnExMTsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnQ1M0
ID0gQVJNNjRSZWdpc3RlcnM6OnExMjsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnQ1M1
ID0gQVJNNjRSZWdpc3RlcnM6OnExMzsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnQ1M2
ID0gQVJNNjRSZWdpc3RlcnM6OnExNDsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnQ1M3
ID0gQVJNNjRSZWdpc3RlcnM6OnExNTsKLQotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1l
bnRGUFIwID0gQVJNNjRSZWdpc3RlcnM6OnEwOyAvLyBmcFJlZ1QwCi0gICAgc3RhdGljIGNvbnN0
IEZQUlJlZyBhcmd1bWVudEZQUjEgPSBBUk02NFJlZ2lzdGVyczo6cTE7IC8vIGZwUmVnVDEKLSAg
ICBzdGF0aWMgY29uc3QgRlBSUmVnIGFyZ3VtZW50RlBSMiA9IEFSTTY0UmVnaXN0ZXJzOjpxMjsg
Ly8gZnBSZWdUMgotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRGUFIzID0gQVJNNjRS
ZWdpc3RlcnM6OnEzOyAvLyBmcFJlZ1QzCi0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBhcmd1bWVu
dEZQUjQgPSBBUk02NFJlZ2lzdGVyczo6cTQ7IC8vIGZwUmVnVDQKLSAgICBzdGF0aWMgY29uc3Qg
RlBSUmVnIGFyZ3VtZW50RlBSNSA9IEFSTTY0UmVnaXN0ZXJzOjpxNTsgLy8gZnBSZWdUNQotICAg
IHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRGUFI2ID0gQVJNNjRSZWdpc3RlcnM6OnE2OyAv
LyBmcFJlZ1Q2Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBhcmd1bWVudEZQUjcgPSBBUk02NFJl
Z2lzdGVyczo6cTc7IC8vIGZwUmVnVDcKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJl
Z1QwID0gQVJNNjRSZWdpc3RlcnM6OnEwOworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZw
UmVnVDEgPSBBUk02NFJlZ2lzdGVyczo6cTE7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcg
ZnBSZWdUMiA9IEFSTTY0UmVnaXN0ZXJzOjpxMjsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJl
ZyBmcFJlZ1QzID0gQVJNNjRSZWdpc3RlcnM6OnEzOworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBS
UmVnIGZwUmVnVDQgPSBBUk02NFJlZ2lzdGVyczo6cTQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBG
UFJSZWcgZnBSZWdUNSA9IEFSTTY0UmVnaXN0ZXJzOjpxNTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IEZQUlJlZyBmcFJlZ1Q2ID0gQVJNNjRSZWdpc3RlcnM6OnE2OworICAgIHN0YXRpYyBjb25zdGV4
cHIgRlBSUmVnIGZwUmVnVDcgPSBBUk02NFJlZ2lzdGVyczo6cTc7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBGUFJSZWcgZnBSZWdUOCA9IEFSTTY0UmVnaXN0ZXJzOjpxMTY7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBGUFJSZWcgZnBSZWdUOSA9IEFSTTY0UmVnaXN0ZXJzOjpxMTc7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMTAgPSBBUk02NFJlZ2lzdGVyczo6cTE4OworICAgIHN0
YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDExID0gQVJNNjRSZWdpc3RlcnM6OnExOTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QxMiA9IEFSTTY0UmVnaXN0ZXJzOjpxMjA7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMTMgPSBBUk02NFJlZ2lzdGVyczo6
cTIxOworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDE0ID0gQVJNNjRSZWdpc3Rl
cnM6OnEyMjsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QxNSA9IEFSTTY0UmVn
aXN0ZXJzOjpxMjM7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMTYgPSBBUk02
NFJlZ2lzdGVyczo6cTI0OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDE3ID0g
QVJNNjRSZWdpc3RlcnM6OnEyNTsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1Qx
OCA9IEFSTTY0UmVnaXN0ZXJzOjpxMjY7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBS
ZWdUMTkgPSBBUk02NFJlZ2lzdGVyczo6cTI3OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVn
IGZwUmVnVDIwID0gQVJNNjRSZWdpc3RlcnM6OnEyODsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQ
UlJlZyBmcFJlZ1QyMSA9IEFSTTY0UmVnaXN0ZXJzOjpxMjk7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBGUFJSZWcgZnBSZWdUMjIgPSBBUk02NFJlZ2lzdGVyczo6cTMwOworICAgIHN0YXRpYyBjb25z
dGV4cHIgRlBSUmVnIGZwUmVnQ1MwID0gQVJNNjRSZWdpc3RlcnM6OnE4OworICAgIHN0YXRpYyBj
b25zdGV4cHIgRlBSUmVnIGZwUmVnQ1MxID0gQVJNNjRSZWdpc3RlcnM6OnE5OworICAgIHN0YXRp
YyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnQ1MyID0gQVJNNjRSZWdpc3RlcnM6OnExMDsKKyAgICBz
dGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ0NTMyA9IEFSTTY0UmVnaXN0ZXJzOjpxMTE7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdDUzQgPSBBUk02NFJlZ2lzdGVyczo6cTEy
OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnQ1M1ID0gQVJNNjRSZWdpc3RlcnM6
OnExMzsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ0NTNiA9IEFSTTY0UmVnaXN0
ZXJzOjpxMTQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdDUzcgPSBBUk02NFJl
Z2lzdGVyczo6cTE1OworCisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgYXJndW1lbnRGUFIw
ID0gQVJNNjRSZWdpc3RlcnM6OnEwOyAvLyBmcFJlZ1QwCisgICAgc3RhdGljIGNvbnN0ZXhwciBG
UFJSZWcgYXJndW1lbnRGUFIxID0gQVJNNjRSZWdpc3RlcnM6OnExOyAvLyBmcFJlZ1QxCisgICAg
c3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgYXJndW1lbnRGUFIyID0gQVJNNjRSZWdpc3RlcnM6OnEy
OyAvLyBmcFJlZ1QyCisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgYXJndW1lbnRGUFIzID0g
QVJNNjRSZWdpc3RlcnM6OnEzOyAvLyBmcFJlZ1QzCisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJS
ZWcgYXJndW1lbnRGUFI0ID0gQVJNNjRSZWdpc3RlcnM6OnE0OyAvLyBmcFJlZ1Q0CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBGUFJSZWcgYXJndW1lbnRGUFI1ID0gQVJNNjRSZWdpc3RlcnM6OnE1OyAv
LyBmcFJlZ1Q1CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgYXJndW1lbnRGUFI2ID0gQVJN
NjRSZWdpc3RlcnM6OnE2OyAvLyBmcFJlZ1Q2CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcg
YXJndW1lbnRGUFI3ID0gQVJNNjRSZWdpc3RlcnM6OnE3OyAvLyBmcFJlZ1Q3CiAKLSAgICBzdGF0
aWMgY29uc3QgRlBSUmVnIHJldHVyblZhbHVlRlBSID0gQVJNNjRSZWdpc3RlcnM6OnEwOyAvLyBm
cFJlZ1QwCisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgcmV0dXJuVmFsdWVGUFIgPSBBUk02
NFJlZ2lzdGVyczo6cTA7IC8vIGZwUmVnVDAKIAogICAgIHN0YXRpYyBGUFJSZWcgdG9SZWdpc3Rl
cih1bnNpZ25lZCBpbmRleCkKICAgICB7CkBAIC0yNTgsNyArMjU4LDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OmZwck5hbWUocmVnKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgSW52YWxpZEluZGV4ID0gMHhmZmZmZmZmZjsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIEludmFsaWRJbmRleCA9IDB4ZmZmZmZmZmY7CiB9OwogCiAj
ZW5kaWYgLy8gQ1BVKEFSTTY0KQpAQCAtMjY4LDIyICsyNjgsMjIgQEAgcHVibGljOgogY2xhc3Mg
RlBSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBGUFJSZWcgUmVnaXN0ZXJUeXBlOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDc7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSAyOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSA3OworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDI7CiAKICAgICAv
LyBUZW1wb3JhcnkgcmVnaXN0ZXJzLgotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUMCA9
IE1JUFNSZWdpc3RlcnM6OmYwOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUMSA9IE1J
UFNSZWdpc3RlcnM6OmYyOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUMiA9IE1JUFNS
ZWdpc3RlcnM6OmY0OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUMyA9IE1JUFNSZWdp
c3RlcnM6OmY2OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUNCA9IE1JUFNSZWdpc3Rl
cnM6OmY4OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUNSA9IE1JUFNSZWdpc3RlcnM6
OmYxMDsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDYgPSBNSVBTUmVnaXN0ZXJzOjpm
MTg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMCA9IE1JUFNSZWdpc3RlcnM6
OmYwOworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDEgPSBNSVBTUmVnaXN0ZXJz
OjpmMjsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QyID0gTUlQU1JlZ2lzdGVy
czo6ZjQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMyA9IE1JUFNSZWdpc3Rl
cnM6OmY2OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDQgPSBNSVBTUmVnaXN0
ZXJzOjpmODsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1Q1ID0gTUlQU1JlZ2lz
dGVyczo6ZjEwOworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDYgPSBNSVBTUmVn
aXN0ZXJzOjpmMTg7CiAKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIHJldHVyblZhbHVlRlBSID0g
TUlQU1JlZ2lzdGVyczo6ZjA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgcmV0dXJuVmFs
dWVGUFIgPSBNSVBTUmVnaXN0ZXJzOjpmMDsKIAotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJn
dW1lbnRGUFIwID0gTUlQU1JlZ2lzdGVyczo6ZjEyOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcg
YXJndW1lbnRGUFIxID0gTUlQU1JlZ2lzdGVyczo6ZjE0OworICAgIHN0YXRpYyBjb25zdGV4cHIg
RlBSUmVnIGFyZ3VtZW50RlBSMCA9IE1JUFNSZWdpc3RlcnM6OmYxMjsKKyAgICBzdGF0aWMgY29u
c3RleHByIEZQUlJlZyBhcmd1bWVudEZQUjEgPSBNSVBTUmVnaXN0ZXJzOjpmMTQ7CiAKICAgICBz
dGF0aWMgRlBSUmVnIHRvUmVnaXN0ZXIodW5zaWduZWQgaW5kZXgpCiAgICAgewpAQCAtMzI0LDcg
KzMyNCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpmcHJOYW1l
KHJlZyk7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEludmFsaWRJbmRleCA9
IDB4ZmZmZmZmZmY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBJbnZhbGlkSW5kZXgg
PSAweGZmZmZmZmZmOwogfTsKIAogI2VuZGlmIC8vIENQVShNSVBTKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9HUFJJbmZvLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvR1BSSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMzcsMjYgKzMzNywyNiBA
QCBwcml2YXRlOgogY2xhc3MgR1BSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBHUFJSZWcg
UmVnaXN0ZXJUeXBlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVy
cyA9IDY7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3Rl
cnMgPSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSA2OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJ
U1RFUlM7CiAKICAgICAvLyBUZW1wb3JhcnkgcmVnaXN0ZXJzLgotICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnVDAgPSBYODZSZWdpc3RlcnM6OmVheDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ1QxID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdU
MiA9IFg4NlJlZ2lzdGVyczo6ZWN4OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDMgPSBY
ODZSZWdpc3RlcnM6OmVieDsgLy8gQ2FsbGVlLXNhdmUKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ1Q0ID0gWDg2UmVnaXN0ZXJzOjplc2k7IC8vIENhbGxlZS1zYXZlCi0gICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdUNSA9IFg4NlJlZ2lzdGVyczo6ZWRpOyAvLyBDYWxsZWUtc2F2ZQotICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVi
cDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMCA9IFg4NlJlZ2lzdGVyczo6ZWF4
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QxID0gWDg2UmVnaXN0ZXJzOjplZHg7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDIgPSBYODZSZWdpc3RlcnM6OmVjeDsK
KyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMyA9IFg4NlJlZ2lzdGVyczo6ZWJ4OyAv
LyBDYWxsZWUtc2F2ZQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q0ID0gWDg2UmVn
aXN0ZXJzOjplc2k7IC8vIENhbGxlZS1zYXZlCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcg
cmVnVDUgPSBYODZSZWdpc3RlcnM6OmVkaTsgLy8gQ2FsbGVlLXNhdmUKKyAgICBzdGF0aWMgY29u
c3RleHByIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWJwOwogICAg
IC8vIFRoZXNlIGNvbnN0YW50cyBwcm92aWRlIHRoZSBuYW1lcyBmb3IgdGhlIGdlbmVyYWwgcHVy
cG9zZSBhcmd1bWVudCAmIHJldHVybiB2YWx1ZSByZWdpc3RlcnMuCi0gICAgc3RhdGljIGNvbnN0
IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBYODZSZWdpc3RlcnM6OmVjeDsgLy8gcmVnVDIKLSAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IFg4NlJlZ2lzdGVyczo6ZWR4OyAvLyBy
ZWdUMQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIyID0gWDg2UmVnaXN0ZXJz
OjplYXg7IC8vIHJlZ1QwCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBY
ODZSZWdpc3RlcnM6OmVieDsgLy8gcmVnVDMKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFy
Z0dQUjAgPSBYODZSZWdpc3RlcnM6OmVzaTsgLy8gcmVnVDQKLSAgICBzdGF0aWMgY29uc3QgR1BS
UmVnIHJldHVyblZhbHVlR1BSID0gWDg2UmVnaXN0ZXJzOjplYXg7IC8vIHJlZ1QwCi0gICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSBYODZSZWdpc3RlcnM6OmVkeDsgLy8g
cmVnVDEKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNlcnZlZE5vblJldHVybkdQUiA9
IFg4NlJlZ2lzdGVyczo6ZWN4OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50
R1BSMCA9IFg4NlJlZ2lzdGVyczo6ZWN4OyAvLyByZWdUMgorICAgIHN0YXRpYyBjb25zdGV4cHIg
R1BSUmVnIGFyZ3VtZW50R1BSMSA9IFg4NlJlZ2lzdGVyczo6ZWR4OyAvLyByZWdUMQorICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSMiA9IFg4NlJlZ2lzdGVyczo6ZWF4OyAv
LyByZWdUMAorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IFg4NlJl
Z2lzdGVyczo6ZWJ4OyAvLyByZWdUMworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5vbkFy
Z0dQUjAgPSBYODZSZWdpc3RlcnM6OmVzaTsgLy8gcmVnVDQKKyAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyByZXR1cm5WYWx1ZUdQUiA9IFg4NlJlZ2lzdGVyczo6ZWF4OyAvLyByZWdUMAorICAg
IHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblZhbHVlR1BSMiA9IFg4NlJlZ2lzdGVyczo6
ZWR4OyAvLyByZWdUMQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5vblByZXNlcnZlZE5v
blJldHVybkdQUiA9IFg4NlJlZ2lzdGVyczo6ZWN4OwogCiAgICAgc3RhdGljIEdQUlJlZyB0b1Jl
Z2lzdGVyKHVuc2lnbmVkIGluZGV4KQogICAgIHsKQEAgLTM4Niw3ICszODYsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6Z3ByTmFtZShyZWcpOwogICAgIH0KIAot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbnZhbGlkSW5kZXggPSAweGZmZmZmZmZmOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgSW52YWxpZEluZGV4ID0gMHhmZmZmZmZmZjsKIH07
CiAKICNlbmRpZiAvLyBDUFUoWDg2KQpAQCAtNDAzLDY4ICs0MDMsNjggQEAgcHVibGljOgogY2xh
c3MgR1BSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBHUFJSZWcgUmVnaXN0ZXJUeXBlOwot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDExOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09G
X0FSR1VNRU5UX1JFR0lTVEVSUzsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJl
ck9mUmVnaXN0ZXJzID0gMTE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJP
ZkFyZ3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUzsKIAogICAg
IC8vIFRoZXNlIHJlZ2lzdGVycyBtYXRjaCB0aGUgYmFzZWxpbmUgSklULgotICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVicDsKLSAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIHRhZ1R5cGVOdW1iZXJSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6
cjE0OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgdGFnTWFza1JlZ2lzdGVyID0gWDg2UmVnaXN0
ZXJzOjpyMTU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIg
PSBYODZSZWdpc3RlcnM6OmVicDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyB0YWdUeXBl
TnVtYmVyUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxNDsKKyAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyB0YWdNYXNrUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxNTsKIAogICAgIC8vIFRl
bXBvcmFyeSByZWdpc3RlcnMuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMCA9IFg4NlJl
Z2lzdGVyczo6ZWF4OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QwID0gWDg2UmVn
aXN0ZXJzOjplYXg7CiAjaWYgIU9TKFdJTkRPV1MpCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBy
ZWdUMSA9IFg4NlJlZ2lzdGVyczo6ZXNpOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDIg
PSBYODZSZWdpc3RlcnM6OmVkeDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gWDg2
UmVnaXN0ZXJzOjplY3g7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNCA9IFg4NlJlZ2lz
dGVyczo6cjg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNSA9IFg4NlJlZ2lzdGVyczo6
cjEwOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDYgPSBYODZSZWdpc3RlcnM6OmVkaTsK
LSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q3ID0gWDg2UmVnaXN0ZXJzOjpyOTsKKyAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMSA9IFg4NlJlZ2lzdGVyczo6ZXNpOworICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QyID0gWDg2UmVnaXN0ZXJzOjplZHg7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDMgPSBYODZSZWdpc3RlcnM6OmVjeDsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZWdUNCA9IFg4NlJlZ2lzdGVyczo6cjg7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgcmVnVDUgPSBYODZSZWdpc3RlcnM6OnIxMDsKKyAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyByZWdUNiA9IFg4NlJlZ2lzdGVyczo6ZWRpOworICAgIHN0YXRpYyBj
b25zdGV4cHIgR1BSUmVnIHJlZ1Q3ID0gWDg2UmVnaXN0ZXJzOjpyOTsKICNlbHNlCi0gICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyByZWdUMSA9IFg4NlJlZ2lzdGVyczo6ZWR4OwotICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgcmVnVDIgPSBYODZSZWdpc3RlcnM6OnI4OwotICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnVDMgPSBYODZSZWdpc3RlcnM6OnI5OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
cmVnVDQgPSBYODZSZWdpc3RlcnM6OnIxMDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q1
ID0gWDg2UmVnaXN0ZXJzOjplY3g7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDEg
PSBYODZSZWdpc3RlcnM6OmVkeDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMiA9
IFg4NlJlZ2lzdGVyczo6cjg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDMgPSBY
ODZSZWdpc3RlcnM6OnI5OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q0ID0gWDg2
UmVnaXN0ZXJzOjpyMTA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDUgPSBYODZS
ZWdpc3RlcnM6OmVjeDsKICNlbmRpZgogCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzAg
PSBYODZSZWdpc3RlcnM6OmVieDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdDUzAg
PSBYODZSZWdpc3RlcnM6OmVieDsKIAogI2lmICFPUyhXSU5ET1dTKQotICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgcmVnQ1MxID0gWDg2UmVnaXN0ZXJzOjpyMTI7Ci0gICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyByZWdDUzIgPSBYODZSZWdpc3RlcnM6OnIxMzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ0NTMyA9IFg4NlJlZ2lzdGVyczo6cjE0OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVn
Q1M0ID0gWDg2UmVnaXN0ZXJzOjpyMTU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVn
Q1MxID0gWDg2UmVnaXN0ZXJzOjpyMTI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVn
Q1MyID0gWDg2UmVnaXN0ZXJzOjpyMTM7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVn
Q1MzID0gWDg2UmVnaXN0ZXJzOjpyMTQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVn
Q1M0ID0gWDg2UmVnaXN0ZXJzOjpyMTU7CiAjZWxzZQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
cmVnQ1MxID0gWDg2UmVnaXN0ZXJzOjplc2k7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdD
UzIgPSBYODZSZWdpc3RlcnM6OmVkaTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0NTMyA9
IFg4NlJlZ2lzdGVyczo6cjEyOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1M0ID0gWDg2
UmVnaXN0ZXJzOjpyMTM7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzUgPSBYODZSZWdp
c3RlcnM6OnIxNDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0NTNiA9IFg4NlJlZ2lzdGVy
czo6cjE1OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTMSA9IFg4NlJlZ2lzdGVy
czo6ZXNpOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTMiA9IFg4NlJlZ2lzdGVy
czo6ZWRpOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTMyA9IFg4NlJlZ2lzdGVy
czo6cjEyOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTNCA9IFg4NlJlZ2lzdGVy
czo6cjEzOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTNSA9IFg4NlJlZ2lzdGVy
czo6cjE0OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTNiA9IFg4NlJlZ2lzdGVy
czo6cjE1OwogI2VuZGlmCiAKICAgICAvLyBUaGVzZSBjb25zdGFudHMgcHJvdmlkZSB0aGUgbmFt
ZXMgZm9yIHRoZSBnZW5lcmFsIHB1cnBvc2UgYXJndW1lbnQgJiByZXR1cm4gdmFsdWUgcmVnaXN0
ZXJzLgogI2lmICFPUyhXSU5ET1dTKQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRH
UFIwID0gWDg2UmVnaXN0ZXJzOjplZGk7IC8vIHJlZ1Q2Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyBhcmd1bWVudEdQUjEgPSBYODZSZWdpc3RlcnM6OmVzaTsgLy8gcmVnVDEKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMiA9IFg4NlJlZ2lzdGVyczo6ZWR4OyAvLyByZWdUMgot
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIzID0gWDg2UmVnaXN0ZXJzOjplY3g7
IC8vIHJlZ1QzCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjQgPSBYODZSZWdp
c3RlcnM6OnI4OyAvLyByZWdUNAotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFI1
ID0gWDg2UmVnaXN0ZXJzOjpyOTsgLy8gcmVnVDcKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJl
ZyBhcmd1bWVudEdQUjAgPSBYODZSZWdpc3RlcnM6OmVkaTsgLy8gcmVnVDYKKyAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjEgPSBYODZSZWdpc3RlcnM6OmVzaTsgLy8gcmVn
VDEKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjIgPSBYODZSZWdpc3Rl
cnM6OmVkeDsgLy8gcmVnVDIKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQ
UjMgPSBYODZSZWdpc3RlcnM6OmVjeDsgLy8gcmVnVDMKKyAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyBhcmd1bWVudEdQUjQgPSBYODZSZWdpc3RlcnM6OnI4OyAvLyByZWdUNAorICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSNSA9IFg4NlJlZ2lzdGVyczo6cjk7IC8vIHJl
Z1Q3CiAjZWxzZQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIwID0gWDg2UmVn
aXN0ZXJzOjplY3g7IC8vIHJlZ1Q1Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQ
UjEgPSBYODZSZWdpc3RlcnM6OmVkeDsgLy8gcmVnVDEKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IGFyZ3VtZW50R1BSMiA9IFg4NlJlZ2lzdGVyczo6cjg7IC8vIHJlZ1QyCi0gICAgc3RhdGljIGNv
bnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBYODZSZWdpc3RlcnM6OnI5OyAvLyByZWdUMworICAg
IHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IFg4NlJlZ2lzdGVyczo6ZWN4
OyAvLyByZWdUNQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IFg4
NlJlZ2lzdGVyczo6ZWR4OyAvLyByZWdUMQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFy
Z3VtZW50R1BSMiA9IFg4NlJlZ2lzdGVyczo6cjg7IC8vIHJlZ1QyCisgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgYXJndW1lbnRHUFIzID0gWDg2UmVnaXN0ZXJzOjpyOTsgLy8gcmVnVDMKICNl
bmRpZgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMCA9IFg4NlJlZ2lzdGVyczo6
cjEwOyAvLyByZWdUNSAocmVnVDQgb24gV2luZG93cykKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJldHVyblZhbHVlR1BSID0gWDg2UmVnaXN0ZXJzOjplYXg7IC8vIHJlZ1QwCi0gICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSBYODZSZWdpc3RlcnM6OmVkeDsgLy8gcmVn
VDEgb3IgcmVnVDIKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNlcnZlZE5vblJldHVy
bkdQUiA9IFg4NlJlZ2lzdGVyczo6cjEwOyAvLyByZWdUNSAocmVnVDQgb24gV2luZG93cykKLSAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNlcnZlZE5vbkFyZ3VtZW50R1BSMCA9IFg4NlJl
Z2lzdGVyczo6cjEwOyAvLyByZWdUNSAocmVnVDQgb24gV2luZG93cykKLSAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIG5vblByZXNlcnZlZE5vbkFyZ3VtZW50R1BSMSA9IFg4NlJlZ2lzdGVyczo6ZWF4
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5vbkFyZ0dQUjAgPSBYODZSZWdpc3RlcnM6
OnIxMDsgLy8gcmVnVDUgKHJlZ1Q0IG9uIFdpbmRvd3MpCisgICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgcmV0dXJuVmFsdWVHUFIgPSBYODZSZWdpc3RlcnM6OmVheDsgLy8gcmVnVDAKKyAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSBYODZSZWdpc3RlcnM6OmVk
eDsgLy8gcmVnVDEgb3IgcmVnVDIKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBub25QcmVz
ZXJ2ZWROb25SZXR1cm5HUFIgPSBYODZSZWdpc3RlcnM6OnIxMDsgLy8gcmVnVDUgKHJlZ1Q0IG9u
IFdpbmRvd3MpCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbm9uUHJlc2VydmVkTm9uQXJn
dW1lbnRHUFIwID0gWDg2UmVnaXN0ZXJzOjpyMTA7IC8vIHJlZ1Q1IChyZWdUNCBvbiBXaW5kb3dz
KQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5vblByZXNlcnZlZE5vbkFyZ3VtZW50R1BS
MSA9IFg4NlJlZ2lzdGVyczo6ZWF4OwogCiAgICAgLy8gRklYTUU6IEkgYmVsaWV2ZSB0aGF0IGFs
bCB1c2VzIG9mIHRoaXMgYXJlIGRlYWQgaW4gdGhlIHNlbnNlIHRoYXQgaXQganVzdCBjYXVzZXMg
dGhlIHNjcmF0Y2gKICAgICAvLyByZWdpc3RlciBhbGxvY2F0b3IgdG8gc2VsZWN0IGEgZGlmZmVy
ZW50IHJlZ2lzdGVyIGFuZCBwb3RlbnRpYWxseSBzcGlsbCB0aGluZ3MuIEl0IHdvdWxkIGJlIGJl
dHRlcgpAQCAtNTIxLDcgKzUyMSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlc2VydmVk
UmVnaXN0ZXJzOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW52YWxp
ZEluZGV4ID0gMHhmZmZmZmZmZjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEludmFs
aWRJbmRleCA9IDB4ZmZmZmZmZmY7CiB9OwogCiAjZW5kaWYgLy8gQ1BVKFg4Nl82NCkKQEAgLTUz
MywzMiArNTMzLDMyIEBAIHB1YmxpYzoKIGNsYXNzIEdQUkluZm8gewogcHVibGljOgogICAgIHR5
cGVkZWYgR1BSUmVnIFJlZ2lzdGVyVHlwZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVt
YmVyT2ZSZWdpc3RlcnMgPSA5OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUzsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gOTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSBOVU1CRVJfT0Zf
QVJHVU1FTlRfUkVHSVNURVJTOwogCiAgICAgLy8gVGVtcG9yYXJ5IHJlZ2lzdGVycy4KLSAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QwID0gQVJNUmVnaXN0ZXJzOjpyMDsKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ1QxID0gQVJNUmVnaXN0ZXJzOjpyMTsKLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJlZ1QyID0gQVJNUmVnaXN0ZXJzOjpyMjsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ1QzID0gQVJNUmVnaXN0ZXJzOjpyMzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q0
ID0gQVJNUmVnaXN0ZXJzOjpyODsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q1ID0gQVJN
UmVnaXN0ZXJzOjpyOTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q2ID0gQVJNUmVnaXN0
ZXJzOjpyMTA7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNyA9IEFSTVJlZ2lzdGVyczo6
cjU7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUOCA9IEFSTVJlZ2lzdGVyczo6cjQ7Ci0g
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzAgPSBBUk1SZWdpc3RlcnM6OnIxMTsKKyAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMCA9IEFSTVJlZ2lzdGVyczo6cjA7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDEgPSBBUk1SZWdpc3RlcnM6OnIxOworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QyID0gQVJNUmVnaXN0ZXJzOjpyMjsKKyAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyByZWdUMyA9IEFSTVJlZ2lzdGVyczo6cjM7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgcmVnVDQgPSBBUk1SZWdpc3RlcnM6OnI4OworICAgIHN0YXRpYyBjb25z
dGV4cHIgR1BSUmVnIHJlZ1Q1ID0gQVJNUmVnaXN0ZXJzOjpyOTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEdQUlJlZyByZWdUNiA9IEFSTVJlZ2lzdGVyczo6cjEwOworICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIHJlZ1Q3ID0gQVJNUmVnaXN0ZXJzOjpyNTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyByZWdUOCA9IEFSTVJlZ2lzdGVyczo6cjQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgcmVnQ1MwID0gQVJNUmVnaXN0ZXJzOjpyMTE7CiAgICAgLy8gVGhlc2UgcmVnaXN0ZXJz
IG1hdGNoIHRoZSBiYXNlbGluZSBKSVQuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBjYWxsRnJh
bWVSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6ZnA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OmZwOwogICAgIC8vIFRoZXNlIGNv
bnN0YW50cyBwcm92aWRlIHRoZSBuYW1lcyBmb3IgdGhlIGdlbmVyYWwgcHVycG9zZSBhcmd1bWVu
dCAmIHJldHVybiB2YWx1ZSByZWdpc3RlcnMuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1
bWVudEdQUjAgPSBBUk1SZWdpc3RlcnM6OnIwOyAvLyByZWdUMAotICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgYXJndW1lbnRHUFIxID0gQVJNUmVnaXN0ZXJzOjpyMTsgLy8gcmVnVDEKLSAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMiA9IEFSTVJlZ2lzdGVyczo6cjI7IC8vIHJlZ1Qy
Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBBUk1SZWdpc3RlcnM6OnIz
OyAvLyByZWdUMwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMCA9IEFSTVJlZ2lz
dGVyczo6cjQ7IC8vIHJlZ1Q4Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25BcmdHUFIxID0g
QVJNUmVnaXN0ZXJzOjpyODsgLy8gcmVnVDQKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJldHVy
blZhbHVlR1BSID0gQVJNUmVnaXN0ZXJzOjpyMDsgLy8gcmVnVDAKLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJldHVyblZhbHVlR1BSMiA9IEFSTVJlZ2lzdGVyczo6cjE7IC8vIHJlZ1QxCi0gICAg
c3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSBBUk1SZWdpc3Rl
cnM6OnI1OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IEFSTVJl
Z2lzdGVyczo6cjA7IC8vIHJlZ1QwCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgYXJndW1l
bnRHUFIxID0gQVJNUmVnaXN0ZXJzOjpyMTsgLy8gcmVnVDEKKyAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyBhcmd1bWVudEdQUjIgPSBBUk1SZWdpc3RlcnM6OnIyOyAvLyByZWdUMgorICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IEFSTVJlZ2lzdGVyczo6cjM7IC8v
IHJlZ1QzCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbm9uQXJnR1BSMCA9IEFSTVJlZ2lz
dGVyczo6cjQ7IC8vIHJlZ1Q4CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbm9uQXJnR1BS
MSA9IEFSTVJlZ2lzdGVyczo6cjg7IC8vIHJlZ1Q0CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgcmV0dXJuVmFsdWVHUFIgPSBBUk1SZWdpc3RlcnM6OnIwOyAvLyByZWdUMAorICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblZhbHVlR1BSMiA9IEFSTVJlZ2lzdGVyczo6cjE7IC8v
IHJlZ1QxCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbm9uUHJlc2VydmVkTm9uUmV0dXJu
R1BSID0gQVJNUmVnaXN0ZXJzOjpyNTsKIAogICAgIHN0YXRpYyBHUFJSZWcgdG9SZWdpc3Rlcih1
bnNpZ25lZCBpbmRleCkKICAgICB7CkBAIC01OTAsNyArNTkwLDcgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6Omdwck5hbWUocmVnKTsKICAgICB9CiAKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgSW52YWxpZEluZGV4ID0gMHhmZmZmZmZmZjsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIEludmFsaWRJbmRleCA9IDB4ZmZmZmZmZmY7CiB9OwogCiAjZW5k
aWYgLy8gQ1BVKEFSTSkKQEAgLTYwMyw1OCArNjAzLDU4IEBAIHB1YmxpYzoKIGNsYXNzIEdQUklu
Zm8gewogcHVibGljOgogICAgIHR5cGVkZWYgR1BSUmVnIFJlZ2lzdGVyVHlwZTsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSAxNjsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDg7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDE2OworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDg7CiAKICAgICAvLyBU
aGVzZSByZWdpc3RlcnMgbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVC4KLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OmZwOwotICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgdGFnVHlwZU51bWJlclJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6Ongy
NzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHRhZ01hc2tSZWdpc3RlciA9IEFSTTY0UmVnaXN0
ZXJzOjp4Mjg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBkYXRhVGVtcFJlZ2lzdGVyID0gTWFj
cm9Bc3NlbWJsZXI6OmRhdGFUZW1wUmVnaXN0ZXI7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBt
ZW1vcnlUZW1wUmVnaXN0ZXIgPSBNYWNyb0Fzc2VtYmxlcjo6bWVtb3J5VGVtcFJlZ2lzdGVyOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gQVJNNjRSZWdp
c3RlcnM6OmZwOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHRhZ1R5cGVOdW1iZXJSZWdp
c3RlciA9IEFSTTY0UmVnaXN0ZXJzOjp4Mjc7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcg
dGFnTWFza1JlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OngyODsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEdQUlJlZyBkYXRhVGVtcFJlZ2lzdGVyID0gTWFjcm9Bc3NlbWJsZXI6OmRhdGFUZW1wUmVn
aXN0ZXI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbWVtb3J5VGVtcFJlZ2lzdGVyID0g
TWFjcm9Bc3NlbWJsZXI6Om1lbW9yeVRlbXBSZWdpc3RlcjsKICAgICAvLyBUZW1wb3JhcnkgcmVn
aXN0ZXJzLgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDAgPSBBUk02NFJlZ2lzdGVyczo6
eDA7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMSA9IEFSTTY0UmVnaXN0ZXJzOjp4MTsK
LSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QyID0gQVJNNjRSZWdpc3RlcnM6OngyOwotICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDMgPSBBUk02NFJlZ2lzdGVyczo6eDM7Ci0gICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyByZWdUNCA9IEFSTTY0UmVnaXN0ZXJzOjp4NDsKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ1Q1ID0gQVJNNjRSZWdpc3RlcnM6Ong1OwotICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgcmVnVDYgPSBBUk02NFJlZ2lzdGVyczo6eDY7Ci0gICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyByZWdUNyA9IEFSTTY0UmVnaXN0ZXJzOjp4NzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ1Q4ID0gQVJNNjRSZWdpc3RlcnM6Ong4OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVn
VDkgPSBBUk02NFJlZ2lzdGVyczo6eDk7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMTAg
PSBBUk02NFJlZ2lzdGVyczo6eDEwOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDExID0g
QVJNNjRSZWdpc3RlcnM6OngxMTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxMiA9IEFS
TTY0UmVnaXN0ZXJzOjp4MTI7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMTMgPSBBUk02
NFJlZ2lzdGVyczo6eDEzOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDE0ID0gQVJNNjRS
ZWdpc3RlcnM6OngxNDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxNSA9IEFSTTY0UmVn
aXN0ZXJzOjp4MTU7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzAgPSBBUk02NFJlZ2lz
dGVyczo6eDE5OyAvLyBVc2VkIGJ5IEZUTCBvbmx5Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBy
ZWdDUzEgPSBBUk02NFJlZ2lzdGVyczo6eDIwOyAvLyBVc2VkIGJ5IEZUTCBvbmx5Ci0gICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyByZWdDUzIgPSBBUk02NFJlZ2lzdGVyczo6eDIxOyAvLyBVc2VkIGJ5
IEZUTCBvbmx5Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzMgPSBBUk02NFJlZ2lzdGVy
czo6eDIyOyAvLyBVc2VkIGJ5IEZUTCBvbmx5Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdD
UzQgPSBBUk02NFJlZ2lzdGVyczo6eDIzOyAvLyBVc2VkIGJ5IEZUTCBvbmx5Ci0gICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyByZWdDUzUgPSBBUk02NFJlZ2lzdGVyczo6eDI0OyAvLyBVc2VkIGJ5IEZU
TCBvbmx5Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzYgPSBBUk02NFJlZ2lzdGVyczo6
eDI1OyAvLyBVc2VkIGJ5IEZUTCBvbmx5Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzcg
PSBBUk02NFJlZ2lzdGVyczo6eDI2OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1M4ID0g
QVJNNjRSZWdpc3RlcnM6OngyNzsgLy8gdGFnVHlwZU51bWJlcgotICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnQ1M5ID0gQVJNNjRSZWdpc3RlcnM6OngyODsgLy8gdGFnTWFzaworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QwID0gQVJNNjRSZWdpc3RlcnM6OngwOworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QxID0gQVJNNjRSZWdpc3RlcnM6OngxOworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QyID0gQVJNNjRSZWdpc3RlcnM6OngyOworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QzID0gQVJNNjRSZWdpc3RlcnM6OngzOworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q0ID0gQVJNNjRSZWdpc3RlcnM6Ong0OworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q1ID0gQVJNNjRSZWdpc3RlcnM6Ong1OworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q2ID0gQVJNNjRSZWdpc3RlcnM6Ong2OworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q3ID0gQVJNNjRSZWdpc3RlcnM6Ong3OworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q4ID0gQVJNNjRSZWdpc3RlcnM6Ong4OworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q5ID0gQVJNNjRSZWdpc3RlcnM6Ong5OworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QxMCA9IEFSTTY0UmVnaXN0ZXJzOjp4MTA7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDExID0gQVJNNjRSZWdpc3RlcnM6OngxMTsKKyAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMTIgPSBBUk02NFJlZ2lzdGVyczo6eDEyOworICAg
IHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QxMyA9IEFSTTY0UmVnaXN0ZXJzOjp4MTM7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDE0ID0gQVJNNjRSZWdpc3RlcnM6OngxNDsK
KyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMTUgPSBBUk02NFJlZ2lzdGVyczo6eDE1
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTMCA9IEFSTTY0UmVnaXN0ZXJzOjp4
MTk7IC8vIFVzZWQgYnkgRlRMIG9ubHkKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdD
UzEgPSBBUk02NFJlZ2lzdGVyczo6eDIwOyAvLyBVc2VkIGJ5IEZUTCBvbmx5CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgcmVnQ1MyID0gQVJNNjRSZWdpc3RlcnM6OngyMTsgLy8gVXNlZCBi
eSBGVEwgb25seQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTMyA9IEFSTTY0UmVn
aXN0ZXJzOjp4MjI7IC8vIFVzZWQgYnkgRlRMIG9ubHkKKyAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyByZWdDUzQgPSBBUk02NFJlZ2lzdGVyczo6eDIzOyAvLyBVc2VkIGJ5IEZUTCBvbmx5Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnQ1M1ID0gQVJNNjRSZWdpc3RlcnM6OngyNDsg
Ly8gVXNlZCBieSBGVEwgb25seQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTNiA9
IEFSTTY0UmVnaXN0ZXJzOjp4MjU7IC8vIFVzZWQgYnkgRlRMIG9ubHkKKyAgICBzdGF0aWMgY29u
c3RleHByIEdQUlJlZyByZWdDUzcgPSBBUk02NFJlZ2lzdGVyczo6eDI2OworICAgIHN0YXRpYyBj
b25zdGV4cHIgR1BSUmVnIHJlZ0NTOCA9IEFSTTY0UmVnaXN0ZXJzOjp4Mjc7IC8vIHRhZ1R5cGVO
dW1iZXIKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdDUzkgPSBBUk02NFJlZ2lzdGVy
czo6eDI4OyAvLyB0YWdNYXNrCiAgICAgLy8gVGhlc2UgY29uc3RhbnRzIHByb3ZpZGUgdGhlIG5h
bWVzIGZvciB0aGUgZ2VuZXJhbCBwdXJwb3NlIGFyZ3VtZW50ICYgcmV0dXJuIHZhbHVlIHJlZ2lz
dGVycy4KLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IEFSTTY0UmVnaXN0
ZXJzOjp4MDsgLy8gcmVnVDAKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMSA9
IEFSTTY0UmVnaXN0ZXJzOjp4MTsgLy8gcmVnVDEKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFy
Z3VtZW50R1BSMiA9IEFSTTY0UmVnaXN0ZXJzOjp4MjsgLy8gcmVnVDIKLSAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IEFSTTY0UmVnaXN0ZXJzOjp4MzsgLy8gcmVnVDMKLSAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNCA9IEFSTTY0UmVnaXN0ZXJzOjp4NDsg
Ly8gcmVnVDQKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSNSA9IEFSTTY0UmVn
aXN0ZXJzOjp4NTsgLy8gcmVnVDUKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BS
NiA9IEFSTTY0UmVnaXN0ZXJzOjp4NjsgLy8gcmVnVDYKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IGFyZ3VtZW50R1BSNyA9IEFSTTY0UmVnaXN0ZXJzOjp4NzsgLy8gcmVnVDcKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIG5vbkFyZ0dQUjAgPSBBUk02NFJlZ2lzdGVyczo6eDg7IC8vIHJlZ1Q4Ci0g
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25BcmdHUFIxID0gQVJNNjRSZWdpc3RlcnM6Ong5OyAv
LyByZWdUOQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSBBUk02NFJl
Z2lzdGVyczo6eDA7IC8vIHJlZ1QwCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1
ZUdQUjIgPSBBUk02NFJlZ2lzdGVyczo6eDE7IC8vIHJlZ1QxCi0gICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSBBUk02NFJlZ2lzdGVyczo6eDI7Ci0gICAg
c3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25Bcmd1bWVudEdQUjAgPSBBUk02NFJl
Z2lzdGVyczo6eDg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25Bcmd1
bWVudEdQUjEgPSBBUk02NFJlZ2lzdGVyczo6eDk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgYXJndW1lbnRHUFIwID0gQVJNNjRSZWdpc3RlcnM6OngwOyAvLyByZWdUMAorICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IEFSTTY0UmVnaXN0ZXJzOjp4MTsgLy8g
cmVnVDEKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjIgPSBBUk02NFJl
Z2lzdGVyczo6eDI7IC8vIHJlZ1QyCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgYXJndW1l
bnRHUFIzID0gQVJNNjRSZWdpc3RlcnM6OngzOyAvLyByZWdUMworICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIGFyZ3VtZW50R1BSNCA9IEFSTTY0UmVnaXN0ZXJzOjp4NDsgLy8gcmVnVDQKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjUgPSBBUk02NFJlZ2lzdGVyczo6
eDU7IC8vIHJlZ1Q1CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgYXJndW1lbnRHUFI2ID0g
QVJNNjRSZWdpc3RlcnM6Ong2OyAvLyByZWdUNgorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVn
IGFyZ3VtZW50R1BSNyA9IEFSTTY0UmVnaXN0ZXJzOjp4NzsgLy8gcmVnVDcKKyAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBub25BcmdHUFIwID0gQVJNNjRSZWdpc3RlcnM6Ong4OyAvLyByZWdU
OAorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5vbkFyZ0dQUjEgPSBBUk02NFJlZ2lzdGVy
czo6eDk7IC8vIHJlZ1Q5CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuVmFsdWVH
UFIgPSBBUk02NFJlZ2lzdGVyczo6eDA7IC8vIHJlZ1QwCisgICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgcmV0dXJuVmFsdWVHUFIyID0gQVJNNjRSZWdpc3RlcnM6OngxOyAvLyByZWdUMQorICAg
IHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5vblByZXNlcnZlZE5vblJldHVybkdQUiA9IEFSTTY0
UmVnaXN0ZXJzOjp4MjsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBub25QcmVzZXJ2ZWRO
b25Bcmd1bWVudEdQUjAgPSBBUk02NFJlZ2lzdGVyczo6eDg7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgbm9uUHJlc2VydmVkTm9uQXJndW1lbnRHUFIxID0gQVJNNjRSZWdpc3RlcnM6Ong5
OwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcGF0Y2hwb2ludFNjcmF0Y2hSZWdpc3RlcjsKIAog
ICAgIC8vIEdQUlJlZyBtYXBwaW5nIGlzIGRpcmVjdCwgdGhlIG1hY2hpbmUgcmVnaXN0ZXIgbnVt
YmVycyBjYW4KQEAgLTcwOSw3ICs3MDksNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiByZXNl
cnZlZFJlZ2lzdGVyczsKICAgICB9CiAgICAgCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIElu
dmFsaWRJbmRleCA9IDB4ZmZmZmZmZmY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBJ
bnZhbGlkSW5kZXggPSAweGZmZmZmZmZmOwogfTsKIAogI2VuZGlmIC8vIENQVShBUk02NCkKQEAg
LTcyMSwzNiArNzIxLDM2IEBAIHB1YmxpYzoKIGNsYXNzIEdQUkluZm8gewogcHVibGljOgogICAg
IHR5cGVkZWYgR1BSUmVnIFJlZ2lzdGVyVHlwZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
bnVtYmVyT2ZSZWdpc3RlcnMgPSAxMTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVy
T2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlM7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDExOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJF
Ul9PRl9BUkdVTUVOVF9SRUdJU1RFUlM7CiAKICAgICAvLyByZWdUMCBtdXN0IGJlIHYwIGZvciBy
ZXR1cm5pbmcgYSAzMi1iaXQgdmFsdWUuCiAgICAgLy8gcmVnVDEgbXVzdCBiZSB2MSBmb3IgcmV0
dXJuaW5nIGEgcGFpciBvZiAzMi1iaXQgdmFsdWUuCiAKICAgICAvLyBUZW1wb3JhcnkgcmVnaXN0
ZXJzLgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDAgPSBNSVBTUmVnaXN0ZXJzOjp2MDsK
LSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxID0gTUlQU1JlZ2lzdGVyczo6djE7Ci0gICAg
c3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMiA9IE1JUFNSZWdpc3RlcnM6OnQyOwotICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgcmVnVDMgPSBNSVBTUmVnaXN0ZXJzOjp0MzsKLSAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIHJlZ1Q0ID0gTUlQU1JlZ2lzdGVyczo6dDQ7Ci0gICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyByZWdUNSA9IE1JUFNSZWdpc3RlcnM6OnQ1OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
cmVnVDYgPSBNSVBTUmVnaXN0ZXJzOjp0NjsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q3
ID0gTUlQU1JlZ2lzdGVyczo6YTA7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUOCA9IE1J
UFNSZWdpc3RlcnM6OmExOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDkgPSBNSVBTUmVn
aXN0ZXJzOjphMjsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxMCA9IE1JUFNSZWdpc3Rl
cnM6OmEzOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QwID0gTUlQU1JlZ2lzdGVy
czo6djA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDEgPSBNSVBTUmVnaXN0ZXJz
Ojp2MTsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMiA9IE1JUFNSZWdpc3RlcnM6
OnQyOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QzID0gTUlQU1JlZ2lzdGVyczo6
dDM7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDQgPSBNSVBTUmVnaXN0ZXJzOjp0
NDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUNSA9IE1JUFNSZWdpc3RlcnM6OnQ1
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q2ID0gTUlQU1JlZ2lzdGVyczo6dDY7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDcgPSBNSVBTUmVnaXN0ZXJzOjphMDsK
KyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUOCA9IE1JUFNSZWdpc3RlcnM6OmExOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q5ID0gTUlQU1JlZ2lzdGVyczo6YTI7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDEwID0gTUlQU1JlZ2lzdGVyczo6YTM7CiAg
ICAgLy8gVGhlc2UgcmVnaXN0ZXJzIG1hdGNoIHRoZSBiYXNlbGluZSBKSVQuCi0gICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OmZwOworICAg
IHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVy
czo6ZnA7CiAgICAgLy8gVGhlc2UgY29uc3RhbnRzIHByb3ZpZGUgdGhlIG5hbWVzIGZvciB0aGUg
Z2VuZXJhbCBwdXJwb3NlIGFyZ3VtZW50ICYgcmV0dXJuIHZhbHVlIHJlZ2lzdGVycy4KLSAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IE1JUFNSZWdpc3RlcnM6OmEwOwotICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIxID0gTUlQU1JlZ2lzdGVyczo6YTE7Ci0g
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjIgPSBNSVBTUmVnaXN0ZXJzOjphMjsK
LSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IE1JUFNSZWdpc3RlcnM6OmEz
OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMCA9IHJlZ1Q0OwotICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSByZWdUMDsKLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJldHVyblZhbHVlR1BSMiA9IHJlZ1QxOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSID0gcmVnVDI7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyByZWdDUzAgPSBNSVBTUmVnaXN0ZXJzOjpzMDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJl
ZyBhcmd1bWVudEdQUjAgPSBNSVBTUmVnaXN0ZXJzOjphMDsKKyAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyBhcmd1bWVudEdQUjEgPSBNSVBTUmVnaXN0ZXJzOjphMTsKKyAgICBzdGF0aWMgY29u
c3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjIgPSBNSVBTUmVnaXN0ZXJzOjphMjsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjMgPSBNSVBTUmVnaXN0ZXJzOjphMzsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBub25BcmdHUFIwID0gcmVnVDQ7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSByZWdUMDsKKyAgICBzdGF0aWMgY29u
c3RleHByIEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSByZWdUMTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSByZWdUMjsKKyAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyByZWdDUzAgPSBNSVBTUmVnaXN0ZXJzOjpzMDsKIAogICAgIHN0YXRp
YyBHUFJSZWcgdG9SZWdpc3Rlcih1bnNpZ25lZCBpbmRleCkKICAgICB7CkBAIC03ODYsNyArNzg2
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6Omdwck5hbWUocmVn
KTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW52YWxpZEluZGV4ID0gMHhm
ZmZmZmZmZjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEludmFsaWRJbmRleCA9IDB4
ZmZmZmZmZmY7CiB9OwogCiAjZW5kaWYgLy8gQ1BVKE1JUFMpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0lDU3RhdHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0lDU3RhdHMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9JQ1N0YXRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTYzLDcgKzE2Myw3IEBAIHByaXZhdGU6
CiBzdHJ1Y3QgSUNFdmVudEhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IElD
RXZlbnQmIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFs
KGNvbnN0IElDRXZlbnQmIGEsIGNvbnN0IElDRXZlbnQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQot
ICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1
ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSB0cnVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkBAIC0xNzksNyArMTc5LDcgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpJQ0V2ZQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8
SlNDOjpJQ0V2ZW50PiA6IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxKU0M6OklDRXZlbnQ+IHsKLSAg
ICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdURgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC04Nyw3ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgIHsKICAgICAg
ICAgICAgIHJldHVybiAoc3RkOjpnZXQ8MD4oYSkgPT0gc3RkOjpnZXQ8MD4oYikpICYmIChzdGQ6
OmdldDwxPihhKSA9PSBzdGQ6OmdldDwxPihiKSkgJiYgKHN0ZDo6Z2V0PDI+KGEpID09IHN0ZDo6
Z2V0PDI+KGIpKTsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9D
b21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiAKICAgICBwcml2YXRl
OgogICAgICAgICBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGhhc2hQb2ludGVyKFRhZ2dlZE5hdGl2
ZUZ1bmN0aW9uIHApCkBAIC05Nyw3ICs5Nyw3IEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHN0
cnVjdCBIb3N0RnVuY3Rpb25IYXNoVHJhaXQgOiBXVEY6OkdlbmVyaWNIYXNoVHJhaXRzPEhvc3RG
dW5jdGlvbktleT4gewotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJv
ID0gdHJ1ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8g
PSB0cnVlOwogICAgICAgICBzdGF0aWMgRW1wdHlWYWx1ZVR5cGUgZW1wdHlWYWx1ZSgpIHsgcmV0
dXJuIHN0ZDo6bWFrZV90dXBsZShudWxscHRyLCBudWxscHRyLCBTdHJpbmcoKSk7IH0KIAogICAg
ICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoSG9zdEZ1bmN0aW9uS2V5JiBz
bG90KSB7IHN0ZDo6Z2V0PDA+KHNsb3QpID0gVGFnZ2VkTmF0aXZlRnVuY3Rpb24oLTEpOyB9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjI2LDcgKzIyNiw3
IEBAIHByaXZhdGU6CiBzdHJ1Y3QgUmVnSGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2go
Y29uc3QgUmVnJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBl
cXVhbChjb25zdCBSZWcmIGEsIGNvbnN0IFJlZyYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAg
c3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9
IHRydWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKQEAgLTI0MCw3ICsyNDAsNyBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxKU0M6OlJlZz4gCiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6
OlJlZz4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpSZWc+IHsKLSAgICBzdGF0aWMgY29u
c3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmgJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTIyMCwxMCArMjIwLDEwIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgLy8g
VGhlc2Ugb2Zmc2V0cyBtaXJyb3IgdGhlIGxvZ2ljIGluIFJlZy5oLgotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBncHJPZmZzZXQgPSAwOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBmcHJP
ZmZzZXQgPSBncHJPZmZzZXQgKyBNYWNyb0Fzc2VtYmxlcjo6bnVtR1BSczsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgaGFzaFNwZWNpYWxCaXRJbmRleCA9IGZwck9mZnNldCArIE1hY3JvQXNz
ZW1ibGVyOjpudW1GUFJzOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBkZWxldGVkQml0SW5k
ZXggPSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZ3ByT2Zmc2V0ID0gMDsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGZwck9mZnNldCA9IGdwck9mZnNldCArIE1hY3Jv
QXNzZW1ibGVyOjpudW1HUFJzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaGFzaFNw
ZWNpYWxCaXRJbmRleCA9IGZwck9mZnNldCArIE1hY3JvQXNzZW1ibGVyOjpudW1GUFJzOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZGVsZXRlZEJpdEluZGV4ID0gMDsKICAgICAKICAg
ICBSZWdpc3RlckJpdG1hcCBtX2JpdHM7CiB9OwpAQCAtMjMxLDcgKzIzMSw3IEBAIHByaXZhdGU6
CiBzdHJ1Y3QgUmVnaXN0ZXJTZXRIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25z
dCBSZWdpc3RlclNldCYgc2V0KSB7IHJldHVybiBzZXQuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJv
b2wgZXF1YWwoY29uc3QgUmVnaXN0ZXJTZXQmIGEsIGNvbnN0IFJlZ2lzdGVyU2V0JiBiKSB7IHJl
dHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0
eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RlbXBSZWdpc3RlclNldC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGVtcFJlZ2lzdGVyU2V0LmgJKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGVtcFJlZ2lzdGVyU2V0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5NCwxMCArMTk0LDEwIEBAIHByaXZhdGU6CiAgICAgICAg
IHJldHVybiAhIShtX3NldFtpID4+IDNdICYgKDEgPDwgKGkgJiA3KSkpOwogICAgIH0KICAgICAK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdG90YWxOdW1iZXJPZlJlZ2lzdGVycyA9CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB0b3RhbE51bWJlck9mUmVnaXN0ZXJzID0KICAgICAg
ICAgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBGUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVy
czsKICAgICAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZCeXRlc0luVGVtcFJl
Z2lzdGVyU2V0ID0KKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQnl0ZXNJ
blRlbXBSZWdpc3RlclNldCA9CiAgICAgICAgICh0b3RhbE51bWJlck9mUmVnaXN0ZXJzICsgNykg
Pj4gMzsKIAogICAgIHVpbnQ4X3QgbV9zZXRbbnVtYmVyT2ZCeXRlc0luVGVtcFJlZ2lzdGVyU2V0
XTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDExICsxMjIsMTEgQEAgcHVibGljOgogICAgIHR5cGVk
ZWYgT2JqZWN0UGF0dGVybk5vZGUqIE9iamVjdFBhdHRlcm47CiAgICAgdHlwZWRlZiBCaW5kaW5n
Tm9kZSogQmluZGluZ1BhdHRlcm47CiAgICAgdHlwZWRlZiBBc3NpZ25tZW50RWxlbWVudE5vZGUq
IEFzc2lnbm1lbnRFbGVtZW50OwotICAgIHN0YXRpYyBjb25zdCBib29sIENyZWF0ZXNBU1QgPSB0
cnVlOwotICAgIHN0YXRpYyBjb25zdCBib29sIE5lZWRzRnJlZVZhcmlhYmxlSW5mbyA9IHRydWU7
Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgQ2FuVXNlRnVuY3Rpb25DYWNoZSA9IHRydWU7Ci0gICAg
c3RhdGljIGNvbnN0IGludCAgRG9udEJ1aWxkS2V5d29yZHMgPSAwOwotICAgIHN0YXRpYyBjb25z
dCBpbnQgIERvbnRCdWlsZFN0cmluZ3MgPSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBD
cmVhdGVzQVNUID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgTmVlZHNGcmVlVmFy
aWFibGVJbmZvID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgQ2FuVXNlRnVuY3Rp
b25DYWNoZSA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgIERvbnRCdWlsZEtleXdv
cmRzID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIGludCAgRG9udEJ1aWxkU3RyaW5ncyA9IDA7
CiAKICAgICBFeHByZXNzaW9uTm9kZSogbWFrZUJpbmFyeU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiwgaW50IHRva2VuLCBzdGQ6OnBhaXI8RXhwcmVzc2lvbk5vZGUqLCBCaW5hcnlPcEluZm8+
LCBzdGQ6OnBhaXI8RXhwcmVzc2lvbk5vZGUqLCBCaW5hcnlPcEluZm8+KTsKICAgICBFeHByZXNz
aW9uTm9kZSogbWFrZUZ1bmN0aW9uQ2FsbE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhw
cmVzc2lvbk5vZGUqIGZ1bmMsIGJvb2wgcHJldmlvdXNCYXNlV2FzU3VwZXIsIEFyZ3VtZW50c05v
ZGUqIGFyZ3MsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCwgc2l6ZV90IGNh
bGxPckFwcGx5Q2hpbGREZXB0aCwgYm9vbCBpc09wdGlvbmFsQ2FsbCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBA
CiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtk
ZS5vcmcpCiAgKiAgQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20p
Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQ2FtZXJvbiBad2FyaWNoIChjd3p3YXJp
Y2hAdXdhdGVybG9vLmNhKQogICogIENvcHlyaWdodCAoQykgMjAwNyBNYWtzIE9ybG92aWNoCiAg
KiAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CkBAIC0x
ODQ0LDcgKzE4NDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdW5zaWduZWQgc3RhcnRD
b2x1bW4oKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0Q29sdW1uOyB9CiAgICAgICAgIHVuc2lnbmVk
IGVuZENvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fZW5kQ29sdW1uOyB9CiAKLSAgICAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgc2NvcGVJc0Z1bmN0aW9uID0gZmFsc2U7CisgICAgICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBzY29wZUlzRnVuY3Rpb24gPSBmYWxzZTsKIAogICAgIHByaXZhdGU6CiAg
ICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCog
PSAwKSBvdmVycmlkZTsKQEAgLTE4NTksNyArMTg1OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIHN0YXJ0Q29sdW1uKCkgY29uc3QgeyByZXR1cm4g
MDsgfQogICAgICAgICB1bnNpZ25lZCBlbmRDb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX2VuZENv
bHVtbjsgfQogCi0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNjb3BlSXNGdW5jdGlvbiA9IGZh
bHNlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2NvcGVJc0Z1bmN0aW9uID0gZmFs
c2U7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CkBAIC0xODc0LDcgKzE4NzQsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdW5zaWduZWQgc3RhcnRDb2x1bW4oKSBjb25zdCB7
IHJldHVybiBtX3N0YXJ0Q29sdW1uOyB9CiAgICAgICAgIHVuc2lnbmVkIGVuZENvbHVtbigpIGNv
bnN0IHsgcmV0dXJuIG1fZW5kQ29sdW1uOyB9CiAKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
c2NvcGVJc0Z1bmN0aW9uID0gZmFsc2U7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBz
Y29wZUlzRnVuY3Rpb24gPSBmYWxzZTsKIAogICAgICAgICBNb2R1bGVTY29wZURhdGEmIG1vZHVs
ZVNjb3BlRGF0YSgpCiAgICAgICAgIHsKQEAgLTIxMzEsNyArMjEzMSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB1bnNpZ25lZCBzdGFydENvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
cnRDb2x1bW47IH0KICAgICAgICAgdW5zaWduZWQgZW5kQ29sdW1uKCkgY29uc3QgeyByZXR1cm4g
bV9lbmRDb2x1bW47IH0KIAotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzY29wZUlzRnVuY3Rp
b24gPSB0cnVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2NvcGVJc0Z1bmN0aW9u
ID0gdHJ1ZTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIElkZW50aWZpZXIgbV9pZGVudDsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5oCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGVL
ZXkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKQEAgLTEyNywxMSArMTI3LDExIEBAIHB1YmxpYzoKICAgICBzdHJ1Y3QgSGFzaCB7CiAg
ICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFNvdXJjZUNvZGVLZXkmIGtleSkgeyBy
ZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBTb3Vy
Y2VDb2RlS2V5JiBhLCBjb25zdCBTb3VyY2VDb2RlS2V5JiBiKSB7IHJldHVybiBhID09IGI7IH0K
LSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQg
PSBmYWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0Vt
cHR5T3JEZWxldGVkID0gZmFsc2U7CiAgICAgfTsKIAogICAgIHN0cnVjdCBIYXNoVHJhaXRzIDog
U2ltcGxlQ2xhc3NIYXNoVHJhaXRzPFNvdXJjZUNvZGVLZXk+IHsKLSAgICAgICAgc3RhdGljIGNv
bnN0IGJvb2wgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gPSB0cnVlOworICAgICAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gPSB0cnVlOwogICAgICAgICBz
dGF0aWMgYm9vbCBpc0VtcHR5VmFsdWUoY29uc3QgU291cmNlQ29kZUtleSYga2V5KSB7IHJldHVy
biBrZXkuaXNOdWxsKCk7IH0KICAgICB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1N5bnRheENoZWNrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0
MCwxMSArMTQwLDExIEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIERlc3RydWN0dXJpbmdQYXR0ZXJu
IE9iamVjdFBhdHRlcm47CiAgICAgdHlwZWRlZiBEZXN0cnVjdHVyaW5nUGF0dGVybiBSZXN0UGF0
dGVybjsKIAotICAgIHN0YXRpYyBjb25zdCBib29sIENyZWF0ZXNBU1QgPSBmYWxzZTsKLSAgICBz
dGF0aWMgY29uc3QgYm9vbCBOZWVkc0ZyZWVWYXJpYWJsZUluZm8gPSBmYWxzZTsKLSAgICBzdGF0
aWMgY29uc3QgYm9vbCBDYW5Vc2VGdW5jdGlvbkNhY2hlID0gdHJ1ZTsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgRG9udEJ1aWxkS2V5d29yZHMgPSBMZXhleEZsYWdzRG9udEJ1aWxkS2V5d29y
ZHM7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIERvbnRCdWlsZFN0cmluZ3MgPSBMZXhlckZs
YWdzRG9udEJ1aWxkU3RyaW5nczsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgQ3JlYXRlc0FT
VCA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBOZWVkc0ZyZWVWYXJpYWJsZUlu
Zm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgQ2FuVXNlRnVuY3Rpb25DYWNo
ZSA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBEb250QnVpbGRLZXl3b3Jk
cyA9IExleGV4RmxhZ3NEb250QnVpbGRLZXl3b3JkczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIERvbnRCdWlsZFN0cmluZ3MgPSBMZXhlckZsYWdzRG9udEJ1aWxkU3RyaW5nczsKIAog
ICAgIGludCBjcmVhdGVTb3VyY2VFbGVtZW50cygpIHsgcmV0dXJuIFNvdXJjZUVsZW1lbnRzUmVz
dWx0OyB9CiAgICAgRXhwcmVzc2lvblR5cGUgbWFrZUZ1bmN0aW9uQ2FsbE5vZGUoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvblR5cGUsIGJvb2wsIGludCwgaW50LCBpbnQsIGludCwg
c2l6ZV90LCBib29sKSB7IHJldHVybiBDYWxsRXhwcjsgfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKIH07CiAKIHN0cnVjdCBW
YXJpYWJsZUVudmlyb25tZW50RW50cnlIYXNoVHJhaXRzIDogSGFzaFRyYWl0czxWYXJpYWJsZUVu
dmlyb25tZW50RW50cnk+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9u
ID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBm
YWxzZTsKIH07CiAKIGNsYXNzIFZhcmlhYmxlRW52aXJvbm1lbnQgewpAQCAtMTU4LDcgKzE1OCw3
IEBAIHN0cnVjdCBDb21wYWN0VmFyaWFibGVNYXBLZXkgewogCiAgICAgc3RhdGljIHVuc2lnbmVk
IGhhc2goY29uc3QgQ29tcGFjdFZhcmlhYmxlTWFwS2V5JiBrZXkpIHsgcmV0dXJuIGtleS5tX2Vu
dmlyb25tZW50LT5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBDb21wYWN0
VmFyaWFibGVNYXBLZXkmIGEsIGNvbnN0IENvbXBhY3RWYXJpYWJsZU1hcEtleSYgYikgeyByZXR1
cm4gKmEubV9lbnZpcm9ubWVudCA9PSAqYi5tX2Vudmlyb25tZW50OyB9Ci0gICAgc3RhdGljIGNv
bnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsK
ICAgICBzdGF0aWMgdm9pZCBtYWtlRGVsZXRlZFZhbHVlKENvbXBhY3RWYXJpYWJsZU1hcEtleSYg
a2V5KQogICAgIHsKICAgICAgICAga2V5Lm1fZW52aXJvbm1lbnQgPSByZWludGVycHJldF9jYXN0
PENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50Kj4oMSk7CkBAIC0xOTMsMTAgKzE5MywxMCBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxKU0M6OkNvbXBhCiB9OwogCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBIYXNoVHJhaXRzPEpTQzo6Q29tcGFjdFZhcmlhYmxlTWFwS2V5PiA6IEdlbmVyaWNI
YXNoVHJhaXRzPEpTQzo6Q29tcGFjdFZhcmlhYmxlTWFwS2V5PiB7Ci0gICAgc3RhdGljIGNvbnN0
IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOwogICAgIHN0YXRpYyBKU0M6OkNvbXBhY3RWYXJpYWJs
ZU1hcEtleSBlbXB0eVZhbHVlKCkgeyByZXR1cm4gSlNDOjpDb21wYWN0VmFyaWFibGVNYXBLZXko
KTsgfQogCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gPSB0
cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiA9
IHRydWU7CiAgICAgc3RhdGljIGJvb2wgaXNFbXB0eVZhbHVlKEpTQzo6Q29tcGFjdFZhcmlhYmxl
TWFwS2V5IGtleSkgeyByZXR1cm4ga2V5LmlzSGFzaFRhYmxlRW1wdHlWYWx1ZSgpOyB9CiAKICAg
ICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoSlNDOjpDb21wYWN0VmFyaWFibGVN
YXBLZXkmIGtleSkgeyBKU0M6OkNvbXBhY3RWYXJpYWJsZU1hcEtleTo6bWFrZURlbGV0ZWRWYWx1
ZShrZXkpOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJP
cmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXJPcmlnaW4uaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTcsNyArOTcsNyBAQCBp
bmxpbmUgYm9vbCBPcmlnaW46OmlzSGFzaFRhYmxlRGVsZXRlZFZhCiBzdHJ1Y3QgT3JpZ2luSGFz
aCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgT3JpZ2luJiBrZXkpIHsgcmV0dXJu
IGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBPcmlnaW4mIGEsIGNv
bnN0IE9yaWdpbiYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6UHJvZmlsZXIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luU3RhY2suaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luU3RhY2su
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEy
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC03OSw3ICs3OSw3IEBAIGlubGluZSBib29sIE9yaWdpblN0YWNrOjpp
c0hhc2hUYWJsZURlbGUKIHN0cnVjdCBPcmlnaW5TdGFja0hhc2ggewogICAgIHN0YXRpYyB1bnNp
Z25lZCBoYXNoKGNvbnN0IE9yaWdpblN0YWNrJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0K
ICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBPcmlnaW5TdGFjayYgYSwgY29uc3QgT3JpZ2lu
U3RhY2smIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVU
b0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OlByb2ZpbGVyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJVSUQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJv
ZmlsZXIvUHJvZmlsZXJVSUQuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyVUlELmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTEsNyArOTEsNyBA
QCBwcml2YXRlOgogc3RydWN0IFVJREhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNv
bnN0IFVJRCYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1
YWwoY29uc3QgVUlEJiBhLCBjb25zdCBVSUQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0
YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0
cnVlOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OlByb2ZpbGVyCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BYnN0cmFjdE1vZHVsZVJlY29yZC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWJzdHJhY3RNb2R1bGVSZWNvcmQu
Y3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
YnN0cmFjdE1vZHVsZVJlY29yZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgQWJzdHJhY3RNb2R1bGVSZWNvcmRJbnRlcm5h
bCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHBy
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfSAvLyBuYW1lc3BhY2UgQWJzdHJhY3RNb2R1bGVSZWNv
cmRJbnRlcm5hbAogCiBjb25zdCBDbGFzc0luZm8gQWJzdHJhY3RNb2R1bGVSZWNvcmQ6OnNfaW5m
byA9IHsgIkFic3RyYWN0TW9kdWxlUmVjb3JkIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVs
bHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShBYnN0cmFjdE1vZHVsZVJlY29yZCkgfTsKQEAgLTE3
Myw3ICsxNzMsNyBAQCBzdHJ1Y3QgQWJzdHJhY3RNb2R1bGVSZWNvcmQ6OlJlc29sdmVRdWVyCiAg
ICAgc3RydWN0IEhhc2ggewogICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBSZXNv
bHZlUXVlcnkmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgUmVzb2x2ZVF1ZXJ5
JiwgY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVU
b0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKICAgICB9OwogICAg
IHVzaW5nIEhhc2hUcmFpdHMgPSBXVEY6OkN1c3RvbUhhc2hUcmFpdHM8UmVzb2x2ZVF1ZXJ5PjsK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlCdWZmZXJOZXV0ZXJp
bmdXYXRjaHBvaW50U2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50U2V0LmgJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyTmV1dGVyaW5n
V2F0Y2hwb2ludFNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDEzICszMywxMyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIGNsYXNzIEFycmF5QnVmZmVyTmV1dGVyaW5nV2F0Y2hwb2ludFNldCBmaW5hbCA6IHB1
YmxpYyBKU0NlbGwgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7
CiAKICAgICBERUNMQVJFX0lORk87CiAgICAgCiAgICAgc3RhdGljIEFycmF5QnVmZmVyTmV1dGVy
aW5nV2F0Y2hwb2ludFNldCogY3JlYXRlKFZNJik7CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBu
ZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNE
ZXN0cnVjdGlvbiA9IHRydWU7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKICAg
ICAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29u
c3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJp
Z2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5
cmlnaHQgKEMpIDIwMDctMjAwOCwgMjAxMSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBH
ZXR0ZXJTZXR0ZXI7CiBjbGFzcyBBcnJheUNvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVy
bmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNl
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0
aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEFycmF5Q29uc3RydWN0b3IqIGNyZWF0ZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBBcnJheVByb3RvdHlwZSogYXJyYXlQcm90b3R5cGUsIEdldHRlclNldHRlciogc3BlY2llc1N5
bWJvbCkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNv
bnZlbnRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlDb252ZW50aW9ucy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheUNvbnZlbnRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTkxLDcg
KzkxLDcgQEAgc3RhdGljX2Fzc2VydChNQVhfU1RPUkFHRV9WRUNUT1JfSU5ERVggPAogLy8gRm9y
IGFsbCBhcnJheSBpbmRpY2VzIHVuZGVyIE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgsIHdlIGFsd2F5
cyB1c2UgYSB2ZWN0b3IuCiAvLyBXaGVuIGluZGljZXMgZ3JlYXRlciB0aGFuIE1JTl9TUEFSU0Vf
QVJSQVlfSU5ERVggYXJlIGludm9sdmVkLCB3ZSB1c2UgYSB2ZWN0b3IKIC8vIGFzIGxvbmcgYXMg
aXQgaXMgMS84IGZ1bGwuIElmIG1vcmUgc3BhcnNlIHRoYW4gdGhhdCwgd2UgdXNlIGEgbWFwLgot
c3RhdGljIGNvbnN0IHVuc2lnbmVkIG1pbkRlbnNpdHlNdWx0aXBsaWVyID0gODsKK3N0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgbWluRGVuc2l0eU11bHRpcGxpZXIgPSA4OwogCiBpbmxpbmUgYm9v
bCBpc0RlbnNlRW5vdWdoRm9yVmVjdG9yKHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgbnVtVmFs
dWVzKQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRv
clByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUs
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEFycmF5SXRlcmF0b3JQ
cm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0
eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0
aWMgQXJyYXlJdGVyYXRvclByb3RvdHlwZSogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5
cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNyArMTc1LDcgQEAgc3RhdGljIEFMV0FZU19J
TkxJTkUgYm9vbCBwdXRMZW5ndGgoRXhlYwogc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBzZXRM
ZW5ndGgoRXhlY1N0YXRlKiBleGVjLCBWTSYgdm0sIEpTT2JqZWN0KiBvYmosIHVuc2lnbmVkIHZh
bHVlKQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBz
dGF0aWMgY29uc3QgYm9vbCB0aHJvd0V4Y2VwdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIHRocm93RXhjZXB0aW9uID0gdHJ1ZTsKICAgICBpZiAoaXNKU0FycmF5KG9iaikp
IHsKICAgICAgICAganNDYXN0PEpTQXJyYXkqPihvYmopLT5zZXRMZW5ndGgoZXhlYywgdmFsdWUs
IHRocm93RXhjZXB0aW9uKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9p
ZCgpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnJvbVN5bmNJ
dGVyYXRvclByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FzeW5jRnJvbVN5bmNJdGVyYXRvclByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQ
cm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgT2xla3NhbmRyIFNrYWNoa292IDxnc2thY2hrb3ZAZ21haWwuY29tPi4KKyAq
IENvcHlyaWdodCAoQykgMjAxNy0yMDE5IE9sZWtzYW5kciBTa2FjaGtvdiA8Z3NrYWNoa292QGdt
YWlsLmNvbT4uCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBBc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUg
ZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFz
ZSA9IEpTTm9uRmluYWxPYmplY3Q7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBERUNMQVJFX0lORk87
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVu
Y3Rpb25Qcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Q
cm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgT2xla3NhbmRyIFNrYWNoa292IDxnc2thY2hrb3ZAZ21haWwuY29tPi4KKyAq
IENvcHlyaWdodCAoQykgMjAxNy0yMDE5IE9sZWtzYW5kciBTa2FjaGtvdiA8Z3NrYWNoa292QGdt
YWlsLmNvbT4uCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBBc3luY0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBl
IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHVzaW5nIEJh
c2UgPSBKU05vbkZpbmFsT2JqZWN0OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgREVDTEFSRV9JTkZP
OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvclBy
b3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fz
eW5jR2VuZXJhdG9yUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yUHJvdG90eXBlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE3IE9sZWtzYW5kciBT
a2FjaGtvdiA8Z3NrYWNoa292QGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zNCw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQXN5bmNHZW5lcmF0
b3JQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAg
ICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBz
dGF0aWMgQXN5bmNHZW5lcmF0b3JQcm90b3R5cGUqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXN5bmNJdGVyYXRvclByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jSXRlcmF0b3JQcm90b3R5cGUuaAkocmV2
aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNJdGVy
YXRvclByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAxNyBPbGVrc2FuZHIgU2thY2hrb3YgPGdza2FjaGtvdkBnbWFpbC5jb20+
LgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNyArMzMsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIGNsYXNzIEFzeW5jSXRlcmF0b3JQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNO
b25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmpl
Y3Q7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgc3RhdGljIEFzeW5jSXRlcmF0b3JQcm90
b3R5cGUqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0F0b21pY3NPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0F0b21pY3NPYmplY3QuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BdG9taWNzT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTk1LDcgKzE5NSw3IEBAIEVuY29kZWRKU1ZhbHVlIGF0b21pY09wZXJhdGlvbldpdGhBcmdz
KEUKIH0KIAogc3RydWN0IEFkZEZ1bmMgewotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1F
eHRyYUFyZ3MgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtRXh0cmFBcmdz
ID0gMTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIEpTVmFsdWUgb3BlcmF0
b3IoKShUKiBwdHIsIGNvbnN0IGRvdWJsZSogYXJncykgY29uc3QKQEAgLTIwNSw3ICsyMDUsNyBA
QCBzdHJ1Y3QgQWRkRnVuYyB7CiB9OwogCiBzdHJ1Y3QgQW5kRnVuYyB7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIG51bUV4dHJhQXJncyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBudW1FeHRyYUFyZ3MgPSAxOwogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAg
ICAgSlNWYWx1ZSBvcGVyYXRvcigpKFQqIHB0ciwgY29uc3QgZG91YmxlKiBhcmdzKSBjb25zdApA
QCAtMjE1LDcgKzIxNSw3IEBAIHN0cnVjdCBBbmRGdW5jIHsKIH07CiAKIHN0cnVjdCBDb21wYXJl
RXhjaGFuZ2VGdW5jIHsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtRXh0cmFBcmdzID0g
MjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUV4dHJhQXJncyA9IDI7CiAgICAg
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKU1ZhbHVlIG9wZXJhdG9yKCkoVCogcHRy
LCBjb25zdCBkb3VibGUqIGFyZ3MpIGNvbnN0CkBAIC0yMjcsNyArMjI3LDcgQEAgc3RydWN0IENv
bXBhcmVFeGNoYW5nZUZ1bmMgewogfTsKIAogc3RydWN0IEV4Y2hhbmdlRnVuYyB7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIG51bUV4dHJhQXJncyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBudW1FeHRyYUFyZ3MgPSAxOwogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+CiAgICAgSlNWYWx1ZSBvcGVyYXRvcigpKFQqIHB0ciwgY29uc3QgZG91YmxlKiBhcmdzKSBj
b25zdApAQCAtMjM3LDcgKzIzNyw3IEBAIHN0cnVjdCBFeGNoYW5nZUZ1bmMgewogfTsKIAogc3Ry
dWN0IExvYWRGdW5jIHsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtRXh0cmFBcmdzID0g
MDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUV4dHJhQXJncyA9IDA7CiAgICAg
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKU1ZhbHVlIG9wZXJhdG9yKCkoVCogcHRy
LCBjb25zdCBkb3VibGUqKSBjb25zdApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHN0cnVjdCBMb2FkRnVu
YyB7CiB9OwogCiBzdHJ1Y3QgT3JGdW5jIHsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVt
RXh0cmFBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUV4dHJhQXJn
cyA9IDE7CiAgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKU1ZhbHVlIG9wZXJh
dG9yKCkoVCogcHRyLCBjb25zdCBkb3VibGUqIGFyZ3MpIGNvbnN0CkBAIC0yNTcsNyArMjU3LDcg
QEAgc3RydWN0IE9yRnVuYyB7CiB9OwogCiBzdHJ1Y3QgU3RvcmVGdW5jIHsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgbnVtRXh0cmFBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG51bUV4dHJhQXJncyA9IDE7CiAgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4K
ICAgICBKU1ZhbHVlIG9wZXJhdG9yKCkoVCogcHRyLCBjb25zdCBkb3VibGUqIGFyZ3MpIGNvbnN0
CkBAIC0yNzAsNyArMjcwLDcgQEAgc3RydWN0IFN0b3JlRnVuYyB7CiB9OwogCiBzdHJ1Y3QgU3Vi
RnVuYyB7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUV4dHJhQXJncyA9IDE7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1FeHRyYUFyZ3MgPSAxOwogICAgIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgSlNWYWx1ZSBvcGVyYXRvcigpKFQqIHB0ciwgY29uc3Qg
ZG91YmxlKiBhcmdzKSBjb25zdApAQCAtMjgwLDcgKzI4MCw3IEBAIHN0cnVjdCBTdWJGdW5jIHsK
IH07CiAKIHN0cnVjdCBYb3JGdW5jIHsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtRXh0
cmFBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUV4dHJhQXJncyA9
IDE7CiAgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKU1ZhbHVlIG9wZXJhdG9y
KCkoVCogcHRyLCBjb25zdCBkb3VibGUqIGFyZ3MpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9CaWdJbnRDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludENvbnN0cnVjdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDE3IENhaW8gTGltYSA8dGljYWlvbGltYUBnbWFpbC5jb20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEdldHRlclNldHRlcjsKIGNsYXNz
IEJpZ0ludENvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVi
bGljOgogICAgIHVzaW5nIEJhc2UgPSBJbnRlcm5hbEZ1bmN0aW9uOwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwog
CiAgICAgc3RhdGljIEJpZ0ludENvbnN0cnVjdG9yKiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgQmlnSW50UHJvdG90eXBlKiBiaWdJbnRQcm90b3R5cGUsIEdldHRlclNldHRl
ciopCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50UHJv
dG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmln
SW50UHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0JpZ0ludFByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNyBDYWlvIExpbWEgPHRpY2Fpb2xpbWFAZ21haWwu
Y29tPi4KLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDcgKzMzLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBCaWdJbnRQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNO
b25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmpl
Y3Q7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0
YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgQmlnSW50UHJvdG90eXBlKiBjcmVhdGUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJv
dG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9v
bGVhblByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2
IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVu
QGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yNyw3ICsyNyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQm9vbGVhblByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBC
b29sZWFuT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEJvb2xlYW5PYmplY3QgQmFzZTsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGlj
UHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBCb29sZWFuUHJvdG90eXBlKiBjcmVhdGUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
ICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbG9uZWRBcmd1bWVu
dHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbG9uZWRB
cmd1bWVudHMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MCw3ICs0MCw3IEBA
IG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQ2xvbmVkQXJndW1lbnRzIGZpbmFsIDogcHVibGljIEpT
Tm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBC
YXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogICAgIAogcHJpdmF0ZToKICAgICBDbG9uZWRB
cmd1bWVudHMoVk0mLCBTdHJ1Y3R1cmUqLCBCdXR0ZXJmbHkqKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAt
NTksNyArNTksNyBAQCBjbGFzcyBWTTsKIGNsYXNzIFZhcmlhYmxlRW52aXJvbm1lbnQ7CiAKIG5h
bWVzcGFjZSBDb2RlQ2FjaGVJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0g
ZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfSAvLyBuYW1l
c3BhY2UgQ29kZUNhY2hlSW50ZXJuYWwKIAogc3RydWN0IFNvdXJjZUNvZGVWYWx1ZSB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29udHJvbEZsb3dQcm9m
aWxlci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db250cm9sRmxvd1Byb2ZpbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAxNCBTYWFtIEJhcmF0aS4gPHNhYW1iYXJhdGkxQGdtYWls
LmNvbT4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTYwLDcgKzYwLDcgQEAgc3RydWN0IEJhc2ljQmxv
Y2tLZXkgewogc3RydWN0IEJhc2ljQmxvY2tLZXlIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQg
aGFzaChjb25zdCBCYXNpY0Jsb2NrS2V5JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAg
ICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBCYXNpY0Jsb2NrS2V5JiBhLCBjb25zdCBCYXNpY0Js
b2NrS2V5JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZl
VG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpAQCAtNzQsNyArNzQsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFz
aDxKU0M6OkJhc2ljCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwog
dGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkJhc2ljQmxvY2tLZXk+IDogU2ltcGxl
Q2xhc3NIYXNoVHJhaXRzPEpTQzo6QmFzaWNCbG9ja0tleT4gewotICAgIHN0YXRpYyBjb25zdCBi
b29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
ZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0
ZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q3VzdG9tR2V0dGVyU2V0dGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiBjbGFzcyBDdXN0b21HZXR0ZXJTZXR0ZXIgOiBwdWJsaWMgSlNDZWxsIHsK
IHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJ
bW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgdHlwZWRl
ZiBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBDdXN0b21HZXR0ZXI7CiAgICAgdHlwZWRlZiBQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYyBDdXN0b21TZXR0ZXI7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAkocmV2aXNpb24g
MjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykg
MTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDExLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBD
b3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCkBAIC0zMCw3ICszMCw3IEBAIGNsYXNzIEdldHRlclNldHRlcjsK
IGNsYXNzIERhdGVDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsK
IHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhh
c1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJs
ZTsKIAogICAgIHN0YXRpYyBEYXRlQ29uc3RydWN0b3IqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBEYXRlUHJvdG90eXBlKiBkYXRlUHJvdG90eXBlLCBHZXR0ZXJTZXR0ZXIq
KQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5
cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJv
dG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAg
KiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykK
LSAqICBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTMyLDcgKzMyLDcgQEAgcHJpdmF0ZToKIAogcHVi
bGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwog
CiAgICAgc3RhdGljIERhdGVQcm90b3R5cGUqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RlZmluZVByb3BlcnR5QXR0cmlidXRlcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RlZmluZVByb3BlcnR5QXR0
cmlidXRlcy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EZWZpbmVQcm9wZXJ0eUF0dHJpYnV0ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiwxMiArMzYs
MTIgQEAgcHVibGljOgogICAgIHN0YXRpY19hc3NlcnQoVHJ1ZVRyaVN0YXRlID09IDEsICJUcnVl
VHJpU3RhdGUgaXMgMS4iKTsKICAgICBzdGF0aWNfYXNzZXJ0KE1peGVkVHJpU3RhdGUgPT0gMiwg
Ik1peGVkVHJpU3RhdGUgaXMgMi4iKTsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBDb25m
aWd1cmFibGVTaGlmdCA9IDA7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEVudW1lcmFibGVT
aGlmdCA9IDI7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFdyaXRhYmxlU2hpZnQgPSA0Owot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBWYWx1ZVNoaWZ0ID0gNjsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgR2V0U2hpZnQgPSA3OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTZXRT
aGlmdCA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBDb25maWd1cmFibGVTaGlm
dCA9IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBFbnVtZXJhYmxlU2hpZnQgPSAy
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgV3JpdGFibGVTaGlmdCA9IDQ7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBWYWx1ZVNoaWZ0ID0gNjsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIEdldFNoaWZ0ID0gNzsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFNldFNoaWZ0ID0gODsKIAogICAgIERlZmluZVByb3BlcnR5QXR0cmlidXRlcygpCiAgICAg
ICAgIDogbV9hdHRyaWJ1dGVzKApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvclByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYg
KzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBv
cnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwOCwgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjksNyArMjks
NyBAQCBjbGFzcyBPYmplY3RQcm90b3R5cGU7CiBjbGFzcyBFcnJvclByb3RvdHlwZSA6IHB1Ymxp
YyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmpl
Y3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBFcnJvclByb3RvdHlwZSogY3Jl
YXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXZhbEV4ZWN1dGFibGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FdmFsRXhlY3V0YWJsZS5oCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FdmFsRXhlY3V0YWJsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBFdmFsRXhlY3V0YWJsZSA6IHB1
YmxpYyBHbG9iYWxFeGVjCiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsK
IHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gR2xvYmFsRXhlY3V0YWJsZTsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0
cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAog
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb24uaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDggKzM0LDggQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBFeGNlcHRpb24gZmluYWwgOiBw
dWJsaWMgSlNDZWxsIHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNDZWxsOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3Ry
dWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKIAogICAgIGVudW0g
U3RhY2tDYXB0dXJlQWN0aW9uIHsKICAgICAgICAgQ2FwdHVyZVN0YWNrLApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlv
bkhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzQsNyArMjM0LDcgQEAgc3RhdGljIFN0
cmluZyBpbnZhbGlkUGFyYW1ldGVySW5Tb3VyY2VBcAogICAgIGlmIChzb3VyY2VUZXh0LmZpbmQo
ImluIikgIT0gaW5JbmRleCkKICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcob3JpZ2luYWxNZXNz
YWdlLCAiIChldmFsdWF0aW5nICciLCBzb3VyY2VUZXh0LCAiJykiKTsKIAotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBpbkxlbmd0aCA9IDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBpbkxlbmd0aCA9IDI7CiAgICAgU3RyaW5nIHJpZ2h0SGFuZFNpZGUgPSBzb3VyY2VUZXh0LnN1
YnN0cmluZyhpbkluZGV4ICsgaW5MZW5ndGgpLnNpbXBsaWZ5V2hpdGVTcGFjZSgpOwogICAgIHJl
dHVybiBtYWtlU3RyaW5nKHJpZ2h0SGFuZFNpZGUsICIgaXMgbm90IGFuIE9iamVjdC4gKGV2YWx1
YXRpbmcgJyIsIHNvdXJjZVRleHQsICInKSIpOwogfQpAQCAtMjUwLDcgKzI1MCw3IEBAIGlubGlu
ZSBTdHJpbmcgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2YKICAgICBpZiAoc291cmNlVGV4dC5m
aW5kKCJpbnN0YW5jZW9mIikgIT0gaW5zdGFuY2VvZkluZGV4KQogICAgICAgICByZXR1cm4gbWFr
ZVN0cmluZyhvcmlnaW5hbE1lc3NhZ2UsICIgKGV2YWx1YXRpbmcgJyIsIHNvdXJjZVRleHQsICIn
KSIpOwogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluc3RhbmNlb2ZMZW5ndGggPSAxMDsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGluc3RhbmNlb2ZMZW5ndGggPSAxMDsKICAg
ICBTdHJpbmcgcmlnaHRIYW5kU2lkZSA9IHNvdXJjZVRleHQuc3Vic3RyaW5nKGluc3RhbmNlb2ZJ
bmRleCArIGluc3RhbmNlb2ZMZW5ndGgpLnNpbXBsaWZ5V2hpdGVTcGFjZSgpOwogICAgIHJldHVy
biBtYWtlU3RyaW5nKHJpZ2h0SGFuZFNpZGUsIGNvbnRlbnQsICIuIChldmFsdWF0aW5nICciLCBz
b3VyY2VUZXh0LCAiJykiKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0V4Y2VwdGlvbkhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaAkod29ya2luZyBjb3B5KQpA
QCAtNjQsNyArNjQsNyBAQCBKU19FWFBPUlRfUFJJVkFURSBFeGNlcHRpb24qIHRocm93VGVybWlu
CiBjbGFzcyBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3IgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1t
b3J0YWw7CiAKICAgICBzdGF0aWMgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKiBjcmVhdGUoVk0m
IHZtKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGVCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZUJhc2UuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhlY3V0YWJsZUJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTcyLDkgKzcyLDkg
QEAgcHJvdGVjdGVkOgogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
czsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3M7CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9u
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRy
dWU7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKICAgICAKICAgICAvLyBGb3Jj
ZSBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlIHRoaXMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5
LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA5LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJs
ZSBmaW5hbCA6IHB1YmxpYyAKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9y
OwogcHVibGljOgogICAgIHR5cGVkZWYgU2NyaXB0RXhlY3V0YWJsZSBCYXNlOwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
U3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgogICAgIHN0
YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuaAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsMTEgKzQ4LDExIEBAIGNsYXNzIEZ1bmN0aW9uUmFyZURh
dGEgZmluYWwgOiBwdWJsaWMgSlMKICAgICAKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBC
YXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1
cmVJc0ltbW9ydGFsOwogCiAgICAgc3RhdGljIEZ1bmN0aW9uUmFyZURhdGEqIGNyZWF0ZShWTSYs
IEpTRnVuY3Rpb24qKTsKIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24g
PSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1
ZTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3Rv
dHlwZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JQcm90
b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5l
cmF0b3JQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvR2VuZXJhdG9yUHJvdG90eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUu
dGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICsz
NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgR2VuZXJhdG9yUHJvdG90eXBlIGZpbmFsIDog
cHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5h
bE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEdlbmVyYXRvclByb3Rv
dHlwZSogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmljQXJn
dW1lbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2Vu
ZXJpY0FyZ3VtZW50cy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9HZW5lcmljQXJndW1lbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw3ICsz
Niw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CiBjbGFzcyBHZW5lcmljQXJndW1lbnRzIDog
cHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5h
bE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50
ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8
IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hl
bkxlbmd0aElzTm90WmVybyB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiAKIHByb3RlY3Rl
ZDoKICAgICBHZW5lcmljQXJndW1lbnRzKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmljT2Zmc2V0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY09mZnNldC5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmlj
T2Zmc2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgogY2xhc3MgR2VuZXJpY09mZnNldCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludmFsaWRPZmZzZXQgPSBVSU5UX01B
WDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGludmFsaWRPZmZzZXQgPSBVSU5UX01B
WDsKICAgICAKICAgICBHZW5lcmljT2Zmc2V0KCkKICAgICAgICAgOiBtX29mZnNldChpbnZhbGlk
T2Zmc2V0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0UHV0SW5mby5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldFB1dEluZm8u
aAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0
UHV0SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDMsMTEgKzIwMywxMSBAQCBjbGFzcyBHZXRQ
dXRJbmZvIHsKIHB1YmxpYzoKICAgICAvLyBHaXZlIGVhY2ggZmllbGQgMTAgYml0cyBmb3Igc2lt
cGxpY2l0eS4KICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihPcGVyYW5kKSAqIDggPiAzMCwgIk5v
dCBlbm91Z2ggYml0cyBmb3IgR2V0UHV0SW5mbyIpOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBtb2RlU2hpZnQgPSAyMDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW5pdGlhbGl6YXRp
b25TaGlmdCA9IDEwOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0eXBlQml0cyA9ICgxIDw8
IGluaXRpYWxpemF0aW9uU2hpZnQpIC0gMTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW5p
dGlhbGl6YXRpb25CaXRzID0gKCgxIDw8IG1vZGVTaGlmdCkgLSAxKSAmIH50eXBlQml0czsKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbW9kZUJpdHMgPSAoKDEgPDwgMzApIC0gMSkgJiB+aW5p
dGlhbGl6YXRpb25CaXRzICYgfnR5cGVCaXRzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgbW9kZVNoaWZ0ID0gMjA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBpbml0aWFs
aXphdGlvblNoaWZ0ID0gMTA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB0eXBlQml0
cyA9ICgxIDw8IGluaXRpYWxpemF0aW9uU2hpZnQpIC0gMTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIGluaXRpYWxpemF0aW9uQml0cyA9ICgoMSA8PCBtb2RlU2hpZnQpIC0gMSkgJiB+
dHlwZUJpdHM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtb2RlQml0cyA9ICgoMSA8
PCAzMCkgLSAxKSAmIH5pbml0aWFsaXphdGlvbkJpdHMgJiB+dHlwZUJpdHM7CiAgICAgc3RhdGlj
X2Fzc2VydCgobW9kZUJpdHMgJiBpbml0aWFsaXphdGlvbkJpdHMgJiB0eXBlQml0cykgPT0gMHgw
LCAiVGhlcmUgc2hvdWxkIGJlIG5vIGludGVyc2VjdGlvbiBiZXR3ZWVuIFJlc29sdmVNb2RlIFJl
c29sdmVUeXBlIGFuZCBJbml0aWFsaXphdGlvbk1vZGUiKTsKIAogICAgIEdldFB1dEluZm8oKSA9
IGRlZmF1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJT
ZXR0ZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvR2V0dGVyU2V0dGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0
ZToKIAogcHVibGljOgogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBT
dHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICBzdGF0aWMgR2V0dGVyU2V0dGVyKiBj
cmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogZ2V0
dGVyLCBKU09iamVjdCogc2V0dGVyKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0dsb2JhbEV4ZWN1dGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9HbG9iYWxFeGVjdXRhYmxlLmgJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dsb2JhbEV4ZWN1dGFibGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEdsb2JhbEV4
ZWN1dGFibGUgOiBwdWJsaWMgU2NyaXB0RXhlY3V0YWJsZSB7CiBwdWJsaWM6CiAgICAgdXNpbmcg
QmFzZSA9IFNjcmlwdEV4ZWN1dGFibGU7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICBERUNMQVJFX0lORk87CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmgJKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMjkwLDcgKzI5MCw3IEBAIHN0cnVjdCBJZGVudGlmaWVyUmVw
SGFzaCA6IFB0ckhhc2g8UmVmUHQKIAogc3RydWN0IElkZW50aWZpZXJNYXBJbmRleEhhc2hUcmFp
dHMgOiBIYXNoVHJhaXRzPGludD4gewogICAgIHN0YXRpYyBpbnQgZW1wdHlWYWx1ZSgpIHsgcmV0
dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7IH0KLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKIH07CiAKIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8
VW5pcXVlZFN0cmluZ0ltcGw+LCBJZGVudGlmaWVyUmVwSGFzaD4gSWRlbnRpZmllclNldDsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bk9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBAIHByaXZhdGU6CiAKIHB1YmxpYzoKICAgICB0
eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5
VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRp
YyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgJ
KHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVy
bmFsRnVuY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBJbnRl
cm5hbEZ1bmN0aW9uIDogcHVibGljIEpTRGVzdHJ1CiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zm
c2V0c0V4dHJhY3RvcjsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3MgfCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBJbXBsZW1lbnRzRGVmYXVs
dEhhc0luc3RhbmNlIHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGE7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSW1wbGVt
ZW50c0hhc0luc3RhbmNlIHwgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSB8IE92ZXJyaWRl
c0dldENhbGxEYXRhOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNl
QWNjZXNzPgogICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0
b3JDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBBbmR5IFZhbldhZ29uZXIgKGFu
ZHlAdmFud2Fnb25lci5mYW1pbHkpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zOSw3ICszOSw3IEBAIGNsYXNzIEludGxDb2xsYXRvclByb3RvdHlwZTsKIGNsYXNzIEludGxD
b2xsYXRvckNvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVi
bGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNlOwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwog
CiAgICAgc3RhdGljIEludGxDb2xsYXRvckNvbnN0cnVjdG9yKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1
cmUqLCBJbnRsQ29sbGF0b3JQcm90b3R5cGUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90eXBlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90eXBl
LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxDb2xsYXRvclByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxNSBBbmR5IFZhbldhZ29uZXIgKGFuZHlAdmFud2Fnb25lci5m
YW1pbHkpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNSw3IEBAIG5h
bWVzcGFjZSBKU0MgewogY2xhc3MgSW50bENvbGxhdG9yUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVj
dCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBI
YXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEludGxDb2xsYXRvclByb3RvdHlw
ZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0
Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxNSBBbmR5IFZhbldhZ29uZXIgKGFuZHlAdmFud2Fnb25lci5mYW1pbHkpCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIEludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZTsKIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yIGZp
bmFsIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50
ZXJuYWxGdW5jdGlvbiBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEludGxEYXRl
VGltZUZvcm1hdENvbnN0cnVjdG9yKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCBJbnRsRGF0ZVRp
bWVGb3JtYXRQcm90b3R5cGUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90
eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBBbmR5IFZhbldhZ29uZXIgKGFuZHlAdmFu
d2Fnb25lci5mYW1pbHkpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICsz
NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBl
IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYg
SlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEludGxE
YXRlVGltZUZvcm1hdFByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0ds
b2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmgJKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJG
b3JtYXRDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAxNSBBbmR5IFZhbldhZ29uZXIgKGFuZHlAdmFud2Fnb25lci5mYW1p
bHkpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw3ICszOSw3IEBAIGNs
YXNzIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGU7CiBjbGFzcyBJbnRsTnVtYmVyRm9ybWF0Q29u
c3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0
eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0
aWMgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCBJ
bnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJv
dG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQW5keSBWYW5XYWdvbmVyIChhbmR5QHZh
bndhZ29uZXIuZmFtaWx5KQorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyAr
MzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUg
ZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBK
U05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgSW50bE51
bWJlckZvcm1hdFByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2Jh
bE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxPYmplY3QuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxNSBBbmR5IFZhbldhZ29uZXIgKGFuZHlAdmFud2Fnb25lci5m
YW1pbHkpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NCw3ICs0NSw3IEBAIGNs
YXNzIEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZTsKIGNsYXNzIEludGxPYmplY3QgZmluYWwgOiBw
dWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFs
T2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgSW50bE9iamVjdCogY3Jl
YXRlKFZNJiwgU3RydWN0dXJlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlc0NvbnN0cnVjdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0
b3IuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTggQW5keSBWYW5XYWdvbmVyIChhbmR5QHZhbndh
Z29uZXIuZmFtaWx5KQorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNyArMzks
NyBAQCBjbGFzcyBJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGU7CiBjbGFzcyBJbnRsUGx1cmFsUnVs
ZXNDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1By
b3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAg
IHN0YXRpYyBJbnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiwgU3RydWN0dXJl
KiwgSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlc1Byb3RvdHlwZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlc1By
b3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsUGx1cmFsUnVsZXNQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTggQW5keSBWYW5XYWdvbmVyIChhbmR5QHZh
bndhZ29uZXIuZmFtaWx5KQorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyAr
MzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZSBm
aW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpT
Tm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBJbnRsUGx1
cmFsUnVsZXNQcm90b3R5cGUqIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
Kik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0l0
ZXJhdG9yUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSXRlcmF0b3JQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSXRlcmF0b3JQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgWXVzdWtlIFN1enVraSA8
dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMyLDcgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBJdGVyYXRvclByb3RvdHlwZSBm
aW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpT
Tm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBzdGF0aWMg
SXRlcmF0b3JQcm90b3R5cGUqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChw
b3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAwMyBQZXRlciBLZWxs
eSAocG1rQHBvc3QuY29tKQogICogIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlh
a292IChhcEBueXBvcC5jb20pCiAgKgpAQCAtODEsNyArODEsNyBAQCBKU0FycmF5KiBKU0FycmF5
Ojp0cnlDcmVhdGVVbmluaXRpYWxpemVkCiAgICAgICAgIEFTU0VSVCgKICAgICAgICAgICAgIGlu
ZGV4aW5nVHlwZSA9PSBBcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdlCiAgICAgICAgICAgICB8
fCBpbmRleGluZ1R5cGUgPT0gQXJyYXlXaXRoQXJyYXlTdG9yYWdlKTsKLSAgICAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGluZGV4QmlhcyA9IDA7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgaW5kZXhCaWFzID0gMDsKICAgICAgICAgdW5zaWduZWQgdmVjdG9yTGVuZ3RoID0g
QXJyYXlTdG9yYWdlOjpvcHRpbWFsVmVjdG9yTGVuZ3RoKGluZGV4Qmlhcywgc3RydWN0dXJlLCBp
bml0aWFsTGVuZ3RoKTsKICAgICAgICAgdm9pZCogdGVtcCA9IHZtLmpzVmFsdWVHaWdhY2FnZUF1
eGlsaWFyeVNwYWNlLmFsbG9jYXRlTm9uVmlydHVhbCgKICAgICAgICAgICAgIHZtLApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAkocmV2aXNpb24gMjQ5OTc2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCSh3b3JraW5nIGNvcHkp
CkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIEpTQXJyYXkgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVj
dCAKIAogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1l
czsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNH
ZXRQcm9wZXJ0eU5hbWVzOwogCiAgICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6ZShDaGVj
a2VkPHNpemVfdD4gaW5saW5lQ2FwYWNpdHkpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNBcnJheUJ1ZmZl
ciBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBC
YXNlID0gSlNOb25GaW5hbE9iamVjdDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAgICAgCiBwcm90
ZWN0ZWQ6CiAgICAgSlNBcnJheUJ1ZmZlcihWTSYsIFN0cnVjdHVyZSosIFJlZlB0cjxBcnJheUJ1
ZmZlcj4mJik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVm
ZmVyVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXlCdWZmZXJWaWV3LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTk2LDcg
Kzk2LDcgQEAgaW5saW5lIGJvb2wgaGFzQXJyYXlCdWZmZXIoVHlwZWRBcnJheU1vZAogY2xhc3Mg
SlNBcnJheUJ1ZmZlclZpZXcgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAg
ICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGZhc3RTaXplTGltaXQgPSAxMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
ZmFzdFNpemVMaW1pdCA9IDEwMDA7CiAgICAgdXNpbmcgVmVjdG9yUHRyID0gQ2FnZWRCYXJyaWVy
UHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIHZvaWQsIHRhZ0NhZ2VkUHRyPjsKICAgICAKICAgICBz
dGF0aWMgc2l6ZV90IHNpemVPZih1aW50MzJfdCBsZW5ndGgsIHVpbnQzMl90IGVsZW1lbnRTaXpl
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBK
U0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIHVzaW5nIEJhc2UgPSBKU0NlbGw7
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsIHwgT3ZlcnJpZGVzVG9UaGlzOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWwgfCBPdmVycmlkZXNUb1RoaXM7CiAgICAgZnJpZW5k
IGNsYXNzIENhY2hlZEJpZ0ludDsKIAogcHVibGljOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OTAs
NyArNDkwLDcgQEAgdHlwZWRlZiBJbnRIYXNoPEVuY29kZWRKU1ZhbHVlPiBFbmNvZGVkSgogCiAj
aWYgVVNFKEpTVkFMVUUzMl82NCkKIHN0cnVjdCBFbmNvZGVkSlNWYWx1ZUhhc2hUcmFpdHMgOiBI
YXNoVHJhaXRzPEVuY29kZWRKU1ZhbHVlPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlW
YWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVl
SXNaZXJvID0gZmFsc2U7CiAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGVtcHR5VmFsdWUoKSB7
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsgfQogICAgIHN0YXRpYyB2b2lkIGNv
bnN0cnVjdERlbGV0ZWRWYWx1ZShFbmNvZGVkSlNWYWx1ZSYgc2xvdCkgeyBzbG90ID0gSlNWYWx1
ZTo6ZW5jb2RlKEpTVmFsdWUoSlNWYWx1ZTo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlKSk7IH0KICAg
ICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkgeyByZXR1
cm4gdmFsdWUgPT0gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNWYWx1ZTo6SGFzaFRhYmxlRGVs
ZXRlZFZhbHVlKSk7IH0KQEAgLTUwNSw3ICs1MDUsNyBAQCBzdHJ1Y3QgRW5jb2RlZEpTVmFsdWVI
YXNoVHJhaXRzIDogSGFzaFRyCiB0eXBlZGVmIHN0ZDo6cGFpcjxFbmNvZGVkSlNWYWx1ZSwgU291
cmNlQ29kZVJlcHJlc2VudGF0aW9uPiBFbmNvZGVkSlNWYWx1ZVdpdGhSZXByZXNlbnRhdGlvbjsK
IAogc3RydWN0IEVuY29kZWRKU1ZhbHVlV2l0aFJlcHJlc2VudGF0aW9uSGFzaFRyYWl0cyA6IEhh
c2hUcmFpdHM8RW5jb2RlZEpTVmFsdWVXaXRoUmVwcmVzZW50YXRpb24+IHsKLSAgICBzdGF0aWMg
Y29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKICAgICBzdGF0aWMgRW5jb2RlZEpTVmFs
dWVXaXRoUmVwcmVzZW50YXRpb24gZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHN0ZDo6bWFrZV9wYWly
KEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpLCBTb3VyY2VDb2RlUmVwcmVzZW50YXRpb246Ok90
aGVyKTsgfQogICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShFbmNvZGVkSlNW
YWx1ZVdpdGhSZXByZXNlbnRhdGlvbiYgc2xvdCkgeyBzbG90ID0gc3RkOjptYWtlX3BhaXIoSlNW
YWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNWYWx1ZTo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlKSksIFNv
dXJjZUNvZGVSZXByZXNlbnRhdGlvbjo6T3RoZXIpOyB9CiAgICAgc3RhdGljIGJvb2wgaXNEZWxl
dGVkVmFsdWUoRW5jb2RlZEpTVmFsdWVXaXRoUmVwcmVzZW50YXRpb24gdmFsdWUpIHsgcmV0dXJu
IHZhbHVlID09IHN0ZDo6bWFrZV9wYWlyKEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKEpTVmFsdWU6
Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSkpLCBTb3VyY2VDb2RlUmVwcmVzZW50YXRpb246Ok90aGVy
KTsgfQpAQCAtNTIwLDcgKzUyMCw3IEBAIHN0cnVjdCBFbmNvZGVkSlNWYWx1ZVdpdGhSZXByZXNl
bnRhdGlvbkgKICAgICB7CiAgICAgICAgIHJldHVybiBhID09IGI7CiAgICAgfQotICAgIHN0YXRp
YyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVl
OwogfTsKIAogLy8gU3RhbmQtYWxvbmUgaGVscGVyIGZ1bmN0aW9ucy4KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsx
LDcgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0
ZW5Aa2RlLm9yZykKICAqICBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0
LmNvbSkKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTgyLDkgKzgyLDkgQEAgY2xh
c3MgSlNDZWxsIDogcHVibGljIEhlYXBDZWxsIHsKICAgICBmcmllbmQgdm9pZCogdHJ5QWxsb2Nh
dGVDZWxsSGVscGVyKEhlYXAmLCBzaXplX3QsIEdDRGVmZXJyYWxDb250ZXh0KiwgQWxsb2NhdGlv
bkZhaWx1cmVNb2RlKTsKIAogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IDA7CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFs
c2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsK
IAogICAgIC8vIERvbid0IGNhbGwgdGhpcyBkaXJlY3RseS4gQ2FsbCBKU0M6OnN1YnNwYWNlRm9y
PFR5cGU+KHZtKSBpbnN0ZWFkLgogICAgIC8vIEZJWE1FOiBSZWZlciB0byBTdWJzcGFjZSBieSBy
ZWZlcmVuY2UuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0N1c3RvbUdl
dHRlclNldHRlckZ1bmN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbi5oCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0N1c3RvbUdldHRlclNldHRlckZ1
bmN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICAv
LyBUaGUgVHlwZSBpcyBzZXQgdG8gdGhlIG51bWJlciBvZiBhcmd1bWVudHMgdGhlIHJlc3VsdGFu
dCBmdW5jdGlvbiB3aWxsIGhhdmUuCiAgICAgZW51bSBjbGFzcyBUeXBlIHsgR2V0dGVyID0gMCwg
U2V0dGVyID0gMSB9OwogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzIG1vZGU+CiAgICAgc3RhdGljIElzb1N1YnNw
YWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0RhdGFWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNEYXRhVmlldy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0RhdGFWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw3ICszMyw3
IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNEYXRhVmlldyBmaW5hbCA6IHB1YmxpYyBKU0Fy
cmF5QnVmZmVyVmlldyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0FycmF5QnVmZmVyVmlldyBC
YXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBlbGVtZW50U2l6ZSA9IDE7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBlbGVtZW50U2l6ZSA9IDE7CiAgICAgCiBwcm90ZWN0ZWQ6
CiAgICAgSlNEYXRhVmlldyhWTSYsIENvbnN0cnVjdGlvbkNvbnRleHQmLCBBcnJheUJ1ZmZlciop
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlw
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZp
ZXdQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDcgKzMyLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU0RhdGFWaWV3UHJvdG90eXBlIGZpbmFsIDogcHVi
bGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9i
amVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiBwcm90ZWN0ZWQ6CiAgICAgSlNEYXRhVmlld1By
b3RvdHlwZShWTSYsIFN0cnVjdHVyZSopOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Rlc3RydWN0aWJsZU9iamVjdC5oCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Rlc3RydWN0aWJsZU9iamVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIEpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0IDogcHVibGljIEpTTm8KIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3Qg
QmFzZTsKIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKICAgICAK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+CiAgICAgc3Rh
dGljIENvbXBsZXRlU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRml4ZWRBcnJheS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRml4ZWRBcnJheS5oCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ZpeGVkQXJyYXkuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIEpTRml4ZWRBcnJheSBmaW5hbCA6IHB1YmxpYyBK
U0NlbGwKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1
Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAg
ICBERUNMQVJFX0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXcuaAkocmV2aXNpb24gMjQ5OTc2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXcu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC05Niw5ICs5Niw5IEBAIHB1YmxpYzoKICAgICB0eXBlZGVm
IEpTQXJyYXlCdWZmZXJWaWV3IEJhc2U7CiAgICAgdHlwZWRlZiB0eXBlbmFtZSBBZGFwdG9yOjpU
eXBlIEVsZW1lbnRUeXBlOwogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwg
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xv
dEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybzsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNH
ZXRQcm9wZXJ0eU5hbWVzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJjZXB0
c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybzsKIAotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBlbGVtZW50U2l6ZSA9IHNpemVvZih0eXBlbmFtZSBBZGFw
dG9yOjpUeXBlKTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGVsZW1lbnRTaXplID0g
c2l6ZW9mKHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUpOwogICAgIAogcHJvdGVjdGVkOgogICAgIEpT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3KFZNJiwgQ29uc3RydWN0aW9uQ29udGV4dCYpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbExl
eGljYWxFbnZpcm9ubWVudC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM0LDcgKzM0LDcgQEAgY2xhc3MgSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQgZmluYWwgOgog
cHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0OwogCi0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Q7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90OwogCiAgICAgc3RhdGljIEpTR2xvYmFsTGV4aWNhbEVudmly
b25tZW50KiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNTY29wZSogcGFy
ZW50U2NvcGUpCiAgICAgewpAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
dm9pZCBkZXN0cm95KEpTQ2VsbCopOwogICAgIC8vIFdlIGRvbid0IG5lZWQgYSBkZXN0cnVjdG9y
IGJlY2F1c2Ugd2UgdXNlIGEgZmluYWxpemVyIGluc3RlYWQuCi0gICAgc3RhdGljIGNvbnN0IGJv
b2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBu
ZWVkc0Rlc3RydWN0aW9uID0gZmFsc2U7CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJl
dHVybiAhc3ltYm9sVGFibGUoKS0+c2l6ZSgpOyB9CiAgICAgYm9vbCBpc0NvbnN0VmFyaWFibGUo
VW5pcXVlZFN0cmluZ0ltcGwqKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTMx
LDcgKzUzMSw3IEBAIHB1YmxpYzoKICAgICAgICAgCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU1Nl
Z21lbnRlZFZhcmlhYmxlT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRh
YmxlIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlO
YW1lcyB8IElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0OworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhh
c1N0YXRpY1Byb3BlcnR5VGFibGUgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3Q7
CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgSlNHbG9iYWxPYmplY3QqIGNyZWF0ZShW
TSYsIFN0cnVjdHVyZSopOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0ltbXV0YWJsZUJ1dHRlcmZseS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTSW1tdXRhYmxlQnV0dGVyZmx5LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW1tdXRhYmxlQnV0dGVyZmx5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBKU0ltbXV0YWJsZUJ1dHRlcmZseSA6IHB1Ymxp
YyBKU0NlCiAgICAgdXNpbmcgQmFzZSA9IEpTQ2VsbDsKIAogcHVibGljOgotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3Ry
dWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAg
ICAgREVDTEFSRV9JTkZPOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJv
bWlzZUNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBKU0lu
dGVybmFsUHJvbWlzZVByb3RvdHlwZTsKIGNsYXNzIEpTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0
b3IgZmluYWwgOiBwdWJsaWMgSlNQcm9taXNlQ29uc3RydWN0b3IgewogcHVibGljOgogICAgIHVz
aW5nIEJhc2UgPSBKU1Byb21pc2VDb25zdHJ1Y3RvcjsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3Bl
cnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0
YXRpYyBKU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUq
LCBKU0ludGVybmFsUHJvbWlzZVByb3RvdHlwZSosIEdldHRlclNldHRlciopOwogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1
ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlz
ZURlZmVycmVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBKU0ludGVybmFsUHJvbWlzZTsKIGNsYXNzIEpT
SW50ZXJuYWxQcm9taXNlRGVmZXJyZWQgZmluYWwgOiBwdWJsaWMgSlNQcm9taXNlRGVmZXJyZWQg
ewogcHVibGljOgogICAgIHR5cGVkZWYgSlNQcm9taXNlRGVmZXJyZWQgQmFzZTsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsK
IAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
KiB0cnlDcmVhdGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKTsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VQcm90b3R5cGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlz
ZVByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0ludGVybmFsUHJvbWlzZVByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDcg
KzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU0ludGVybmFsUHJvbWlzZVByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU1Byb21pc2VQcm90b3R5cGUgewogcHVibGljOgogICAgIHR5cGVk
ZWYgSlNQcm9taXNlUHJvdG90eXBlIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAg
c3RhdGljIEpTSW50ZXJuYWxQcm9taXNlUHJvdG90eXBlKiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmgJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmly
b25tZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDA5LCAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OCw3ICs0OCw3IEBAIHB1
YmxpYzoKICAgICB9CiAKICAgICB1c2luZyBCYXNlID0gSlNTeW1ib2xUYWJsZU9iamVjdDsKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5
TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJp
ZGVzR2V0UHJvcGVydHlOYW1lczsKIAogICAgIFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIHZh
cmlhYmxlcygpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNN
b2R1bGVFbnZpcm9ubWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTW9kdWxlRW52aXJvbm1lbnQuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVFbnZpcm9ubWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBKU01vZHVsZUVudmlyb25tZW50IGZpbmFsIDog
cHVibGljCiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKIHB1YmxpYzoK
ICAgICB1c2luZyBCYXNlID0gSlNMZXhpY2FsRW52aXJvbm1lbnQ7Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5
TmFtZXM7CiAKICAgICBzdGF0aWMgSlNNb2R1bGVFbnZpcm9ubWVudCogY3JlYXRlKFZNJiwgU3Ry
dWN0dXJlKiwgSlNTY29wZSosIFN5bWJvbFRhYmxlKiwgSlNWYWx1ZSBpbml0aWFsVmFsdWUsIEFi
c3RyYWN0TW9kdWxlUmVjb3JkKik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTW9kdWxlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDE2IFl1c3VrZSBTdXp1a2kgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4uCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC00MCw3ICs0MCw3IEBA
IHByaXZhdGU6CiAgICAgSlNNb2R1bGVMb2FkZXIoVk0mLCBTdHJ1Y3R1cmUqKTsKIHB1YmxpYzoK
ICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1By
b3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAg
IGVudW0gU3RhdHVzIHsKICAgICAgICAgRmV0Y2ggPSAxLApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZU5hbWVzcGFjZU9iamVjdC5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVs
ZU5hbWVzcGFjZU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiBjbGFzcyBKU01vZHVsZU5hbWVzcGFjZU9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU0Rl
c3RydWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Rlc3RydWN0aWJsZU9i
amVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJj
ZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IE92
ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclBy
b3BlcnR5QWJzZW5jZSB8IElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0OworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVyY2VwdHNHZXRPd25Qcm9w
ZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBPdmVycmlkZXNHZXRQcm9w
ZXJ0eU5hbWVzIHwgR2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2Ug
fCBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdDsKIAogICAgIHN0YXRpYyBKU01vZHVs
ZU5hbWVzcGFjZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEFic3RyYWN0TW9kdWxlUmVjb3Jk
KiBtb2R1bGVSZWNvcmQsIFZlY3RvcjxzdGQ6OnBhaXI8SWRlbnRpZmllciwgQWJzdHJhY3RNb2R1
bGVSZWNvcmQ6OlJlc29sdXRpb24+PiYmIHJlc29sdXRpb25zKQogICAgIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm9uRGVzdHJ1Y3RpYmxlUHJveHkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vbkRlc3RydWN0aWJsZVBy
b3h5LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm9uRGVzdHJ1Y3RpYmxlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU05vbkRlc3RydWN0aWJsZVByb3h5IDogcHVi
bGljIEpTUHJveHkgewogICAgICAgICBwdWJsaWM6CiAgICAgICAgICAgICB1c2luZyBCYXNlID0g
SlNQcm94eTsKLSAgICAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwotICAgICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
bmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOworICAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgICAgICAg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKIAogICAg
ICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzIG1vZGU+
CiAgICAgICAgICAgICAgICAgc3RhdGljIENvbXBsZXRlU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZN
JiB2bSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3Qu
Y3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09OT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQwLDcgKzY0MCw3IEBAIHByaXZhdGU6
CiB9OwogCiAvLyBXZSBjbGFtcCByZWN1cnNpb24gd2VsbCBiZXlvbmQgYW55dGhpbmcgcmVhc29u
YWJsZS4KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtRmlsdGVyUmVjdXJzaW9uID0gNDAw
MDA7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heGltdW1GaWx0ZXJSZWN1cnNpb24gPSA0
MDAwMDsKIGVudW0gV2Fsa2VyU3RhdGUgeyBTdGF0ZVVua25vd24sIEFycmF5U3RhcnRTdGF0ZSwg
QXJyYXlTdGFydFZpc2l0TWVtYmVyLCBBcnJheUVuZFZpc2l0TWVtYmVyLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFN0YXJ0U3RhdGUsIE9iamVjdFN0YXJ0VmlzaXRN
ZW1iZXIsIE9iamVjdEVuZFZpc2l0TWVtYmVyIH07CiBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxr
ZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPTk9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT05PYmplY3QuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDcgKzMyLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU09OT2JqZWN0IGZpbmFsIDogcHVibGljIEpTTm9u
RmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNl
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0
aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEpTT05PYmplY3QqIGNyZWF0ZShWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTEzMSw3ICsxMTMx
LDcgQEAgY2xhc3MgSlNGaW5hbE9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU09iagogCiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBKU09iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAg
IHN0YXRpYyBzaXplX3QgYWxsb2NhdGlvblNpemUoQ2hlY2tlZDxzaXplX3Q+IGlubGluZUNhcGFj
aXR5KQogICAgIHsKQEAgLTExMzksMTUgKzExMzksMTUgQEAgcHVibGljOgogICAgIH0KIAogICAg
IHN0YXRpYyBpbmxpbmUgY29uc3QgVHlwZUluZm8gdHlwZUluZm8oKSB7IHJldHVybiBUeXBlSW5m
byhGaW5hbE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKTsgfQotICAgIHN0YXRpYyBjb25zdCBJ
bmRleGluZ1R5cGUgZGVmYXVsdEluZGV4aW5nVHlwZSA9IE5vbkFycmF5OworICAgIHN0YXRpYyBj
b25zdGV4cHIgSW5kZXhpbmdUeXBlIGRlZmF1bHRJbmRleGluZ1R5cGUgPSBOb25BcnJheTsKICAg
ICAgICAgCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGRlZmF1bHRTaXplID0gNjQ7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBkZWZhdWx0U2l6ZSA9IDY0OwogICAgIHN0YXRpYyBp
bmxpbmUgdW5zaWduZWQgZGVmYXVsdElubGluZUNhcGFjaXR5KCkKICAgICB7CiAgICAgICAgIHJl
dHVybiAoZGVmYXVsdFNpemUgLSBhbGxvY2F0aW9uU2l6ZSgwKSkgLyBzaXplb2YoV3JpdGVCYXJy
aWVyPFVua25vd24+KTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4U2l6
ZSA9IDUxMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heFNpemUgPSA1MTI7CiAg
ICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBtYXhJbmxpbmVDYXBhY2l0eSgpCiAgICAgewogICAg
ICAgICByZXR1cm4gKG1heFNpemUgLSBhbGxvY2F0aW9uU2l6ZSgwKSkgLyBzaXplb2YoV3JpdGVC
YXJyaWVyPFVua25vd24+KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
UHJvbWlzZUNvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEdldHRlclNldHRlcjsKIGNsYXNzIEpT
UHJvbWlzZUNvbnN0cnVjdG9yIDogcHVibGljIEpTRnVuY3Rpb24gewogcHVibGljOgogICAgIHVz
aW5nIEJhc2UgPSBKU0Z1bmN0aW9uOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEpTUHJv
bWlzZUNvbnN0cnVjdG9yKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCBKU1Byb21pc2VQcm90b3R5
cGUqLCBHZXR0ZXJTZXR0ZXIqIHNwZWNpZXNTeW1ib2wpOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJlZC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmgJ
KHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
bWlzZURlZmVycmVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBKU0Z1bmN0
aW9uOwogY2xhc3MgSlNQcm9taXNlRGVmZXJyZWQgOiBwdWJsaWMgSlNDZWxsIHsKIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgc3RydWN0IERlZmVycmVk
RGF0YSB7CiAgICAgICAgIFdURl9GT1JCSURfSEVBUF9BTExPQ0FUSU9OOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUHJvdG90eXBlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUHJvdG90eXBlLmgJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlz
ZVByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiBjbGFzcyBKU1Byb21pc2VQcm90b3R5cGUgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBw
dWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNT
dGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7
CiAKICAgICBzdGF0aWMgSlNQcm9taXNlUHJvdG90eXBlKiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaAko
cmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiBjbGFzcyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IgZmluYWwgOiBwdWJs
aWMgSlNDZWxsIHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNDZWxsOwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
U3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwog
CiAgICAgc3RhdGljIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogY3JlYXRlKFZNJiwgU3RydWN0
dXJlKiwgdWludDMyX3QsIHVpbnQzMl90LCBQcm9wZXJ0eU5hbWVBcnJheSYmKTsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm94eS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJveHkuaAkocmV2aXNpb24gMjQ5OTc2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm94eS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU1Byb3h5IDogcHVibGljIEpT
RGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNEZXN0cnVj
dGlibGVPYmplY3Q7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybzsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSW50ZXJjZXB0c0dldE93
blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybzsKIAogICAgIHN0YXRp
YyBKU1Byb3h5KiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3Qq
IHRhcmdldCkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Nj
b3BlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29w
ZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Njb3BlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFdhdGNocG9p
bnRTZXQ7CiBjbGFzcyBKU1Njb3BlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGlj
OgogICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0OwotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVz
VG9UaGlzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc1RvVGhpczsKIAogICAgIERFQ0xBUkVfRVhQ
T1JUX0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NyaXB0
RmV0Y2hQYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTY3JpcHRGZXRjaFBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY3JpcHRGZXRjaFBhcmFtZXRlcnMuaAkod29y
a2luZyBjb3B5KQpAQCAtMzcsOCArMzcsOCBAQCBjbGFzcyBKU1NjcmlwdEZldGNoUGFyYW1ldGVy
cyBmaW5hbCA6IHB1CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTQ2VsbDsKIAotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3Ry
dWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKIAogICAgIERFQ0xB
UkVfRVhQT1JUX0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U2NyaXB0RmV0Y2hlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU2NyaXB0RmV0Y2hlci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1NjcmlwdEZldGNoZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzcs
OCArMzcsOCBAQCBjbGFzcyBKU1NjcmlwdEZldGNoZXIgZmluYWwgOiBwdWJsaWMgSlNDCiBwdWJs
aWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTQ2VsbDsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1v
cnRhbDsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2VnbWVudGVkVmFyaWFibGVP
YmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Nl
Z21lbnRlZFZhcmlhYmxlT2JqZWN0LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuaAkod29ya2luZyBj
b3B5KQpAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJFX0lORk87CiAKLSAg
ICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+CiAgICAgc3RhdGljIENvbXBsZXRlU3Vi
c3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU291cmNlQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU291cmNlQ29kZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1NvdXJjZUNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYgWXVzdWtlIFN1enVraSA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsOCAr
MzYsOCBAQCBjbGFzcyBKU1NvdXJjZUNvZGUgZmluYWwgOiBwdWJsaWMgSlNDZWxsCiBwdWJsaWM6
CiAgICAgdXNpbmcgQmFzZSA9IEpTQ2VsbDsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRh
bDsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBu
ZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgSlNTdHJpbmc6OnZpc2l0Q2hp
bGRyZW4oSlNDZWxsKiBjZWwKICAgICAgICAgdmlzaXRvci5yZXBvcnRFeHRyYU1lbW9yeVZpc2l0
ZWQoaW1wbC0+Y29zdER1cmluZ0dDKCkpOwogfQogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4
TGVuZ3RoRm9yT25TdGFja1Jlc29sdmUgPSAyMDQ4Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBtYXhMZW5ndGhGb3JPblN0YWNrUmVzb2x2ZSA9IDIwNDg7CiAKIHZvaWQgSlNSb3BlU3RyaW5n
OjpyZXNvbHZlUm9wZUludGVybmFsOChMQ2hhciogYnVmZmVyKSBjb25zdAogewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCSh3b3JraW5nIGNvcHkp
CkBAIC04OCw5ICs4OCw5IEBAIHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3MgU21hbGxTdHJpbmdz
OwogCiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5M
ZW5ndGhJc05vdFplcm8gfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsIHwgT3ZlcnJpZGVzVG9UaGlzOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVyY2VwdHNHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBTdHJ1Y3R1cmVJ
c0ltbW9ydGFsIHwgT3ZlcnJpZGVzVG9UaGlzOwogCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVl
ZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVz
dHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAgICAg
CiAgICAgLy8gV2Ugc3BlY2lhbGl6ZSB0aGUgc3RyaW5nIHN1YnNwYWNlIHRvIGdldCB0aGUgZmFz
dGVzdCBwb3NzaWJsZSBzd2VlcC4gVGhpcyB3b3VsZG4ndCBiZQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuaAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xUYWJs
ZU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMiwgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNyArMzksNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIGNsYXNzIEpTU3ltYm9sVGFibGVPYmplY3QgOiBwdWJsaWMgSlNTY29wZSB7CiBw
dWJsaWM6CiAgICAgdHlwZWRlZiBKU1Njb3BlIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiAg
ICAgCiAgICAgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9zeW1i
b2xUYWJsZS5nZXQoKTsgfQogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNUZW1wbGF0ZU9iamVjdERlc2NyaXB0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1RlbXBsYXRlT2JqZWN0RGVzY3JpcHRvci5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1RlbXBsYXRlT2Jq
ZWN0RGVzY3JpcHRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+Lgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsOCArMzUsOCBAQCBjbGFzcyBKU1Rl
bXBsYXRlT2JqZWN0RGVzY3JpcHRvciBmaW5hbCA6CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9
IEpTQ2VsbDsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKLSAgICBzdGF0aWMgY29u
c3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJ
c0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0g
dHJ1ZTsKICAgICBERUNMQVJFX0lORk87CiAKICAgICBzdGF0aWMgSlNUZW1wbGF0ZU9iamVjdERl
c2NyaXB0b3IqIGNyZWF0ZShWTSYsIFJlZjxUZW1wbGF0ZU9iamVjdERlc2NyaXB0b3I+JiYsIGlu
dCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJ
bmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvLyAtKi0gbW9kZTogYysrOyBj
LWJhc2ljLW9mZnNldDogNCAtKi0KIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zNywyNiArMzcsMjYgQEAgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwog
CiAvLyBJbmxpbmUgZmxhZ3MuCiAKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBNYXNxdWVyYWRlc0Fz
VW5kZWZpbmVkID0gMTsgLy8gV2ViQ29yZSB1c2VzIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgdG8g
bWFrZSBkb2N1bWVudC5hbGwgdW5kZXRlY3RhYmxlLgotc3RhdGljIGNvbnN0IHVuc2lnbmVkIElt
cGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgPSAxIDw8IDE7Ci1zdGF0aWMgY29uc3QgdW5zaWdu
ZWQgT3ZlcnJpZGVzR2V0Q2FsbERhdGEgPSAxIDw8IDI7IC8vIE5lZWQgdGhpcyBmbGFnIGlmIHlv
dSBpbXBsZW1lbnQgW1tDYWxsYWJsZV1dIGludGVyZmFjZSwgd2hpY2ggbWVhbnMgb3ZlcnJpZGlu
ZyBnZXRDYWxsRGF0YS4gVGhlIG9iamVjdCBtYXkgbm90IGJlIGNhbGxhYmxlIHNpbmNlIGdldENh
bGxEYXRhIGNhbiBzYXkgaXQgaXMgbm90IGNhbGxhYmxlLgotc3RhdGljIGNvbnN0IHVuc2lnbmVk
IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCA9IDEgPDwgMzsKLXN0YXRpYyBjb25zdCB1bnNp
Z25lZCBPdmVycmlkZXNUb1RoaXMgPSAxIDw8IDQ7IC8vIElmIHRoaXMgaXMgZmFsc2UgdGhlbiB0
aGlzIHJldHVybnMgc29tZXRoaW5nIG90aGVyIHRoYW4gJ3RoaXMnLiBOb24tb2JqZWN0IGNlbGxz
IHRoYXQgYXJlIHZpc2libGUgdG8gSlMgaGF2ZSB0aGlzIHNldCBhcyBkbyBzb21lIGV4b3RpYyBv
YmplY3RzLgotc3RhdGljIGNvbnN0IHVuc2lnbmVkIEhhc1N0YXRpY1Byb3BlcnR5VGFibGUgPSAx
IDw8IDU7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgVHlwZUluZm9QZXJDZWxsQml0ID0gMSA8PCA3
OyAvLyBVbmxpa2Ugb3RoZXIgaW5saW5lIGZsYWdzLCB0aGlzIHdpbGwgb25seSBiZSBzZXQgb24g
dGhlIGNlbGwgaXRzZWxmIGFuZCB3aWxsIG5vdCBiZSBzZXQgb24gdGhlIFN0cnVjdHVyZS4KK3N0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IDE7IC8vIFdl
YkNvcmUgdXNlcyBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHRvIG1ha2UgZG9jdW1lbnQuYWxsIHVu
ZGV0ZWN0YWJsZS4KK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgSW1wbGVtZW50c0RlZmF1bHRI
YXNJbnN0YW5jZSA9IDEgPDwgMTsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgT3ZlcnJpZGVz
R2V0Q2FsbERhdGEgPSAxIDw8IDI7IC8vIE5lZWQgdGhpcyBmbGFnIGlmIHlvdSBpbXBsZW1lbnQg
W1tDYWxsYWJsZV1dIGludGVyZmFjZSwgd2hpY2ggbWVhbnMgb3ZlcnJpZGluZyBnZXRDYWxsRGF0
YS4gVGhlIG9iamVjdCBtYXkgbm90IGJlIGNhbGxhYmxlIHNpbmNlIGdldENhbGxEYXRhIGNhbiBz
YXkgaXQgaXMgbm90IGNhbGxhYmxlLgorc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgPSAxIDw8IDM7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IE92ZXJyaWRlc1RvVGhpcyA9IDEgPDwgNDsgLy8gSWYgdGhpcyBpcyBmYWxzZSB0aGVuIHRoaXMg
cmV0dXJucyBzb21ldGhpbmcgb3RoZXIgdGhhbiAndGhpcycuIE5vbi1vYmplY3QgY2VsbHMgdGhh
dCBhcmUgdmlzaWJsZSB0byBKUyBoYXZlIHRoaXMgc2V0IGFzIGRvIHNvbWUgZXhvdGljIG9iamVj
dHMuCitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEhhc1N0YXRpY1Byb3BlcnR5VGFibGUgPSAx
IDw8IDU7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFR5cGVJbmZvUGVyQ2VsbEJpdCA9IDEg
PDwgNzsgLy8gVW5saWtlIG90aGVyIGlubGluZSBmbGFncywgdGhpcyB3aWxsIG9ubHkgYmUgc2V0
IG9uIHRoZSBjZWxsIGl0c2VsZiBhbmQgd2lsbCBub3QgYmUgc2V0IG9uIHRoZSBTdHJ1Y3R1cmUu
CiAKIC8vIE91dCBvZiBsaW5lIGZsYWdzLgogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgSW1wbGVt
ZW50c0hhc0luc3RhbmNlID0gMSA8PCA4Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIE92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXMgPSAxIDw8IDk7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgUHJvaGli
aXRzUHJvcGVydHlDYWNoaW5nID0gMSA8PCAxMDsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBHZXRP
d25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSA9IDEgPDwgMTE7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQg
TmV3SW1wdXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRzID0gMSA8PCAxMjsKLXN0YXRpYyBjb25z
dCB1bnNpZ25lZCBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdCA9IDEgPDwgMTM7Ci1z
dGF0aWMgY29uc3QgdW5zaWduZWQgR2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0
eUFic2VuY2UgPSAxIDw8IDE0Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIEludGVyY2VwdHNHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gPSAxIDw8IDE1Owot
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUlzSW1tb3J0YWwgPSAxIDw8IDE2Owotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIEhhc1B1dFByb3BlcnR5U2VjdXJpdHlDaGVjayA9IDEgPDwgMTc7
CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEltcGxlbWVudHNIYXNJbnN0YW5jZSA9IDEgPDwg
ODsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyA9
IDEgPDwgOTsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgUHJvaGliaXRzUHJvcGVydHlDYWNo
aW5nID0gMSA8PCAxMDsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgR2V0T3duUHJvcGVydHlT
bG90SXNJbXB1cmUgPSAxIDw8IDExOworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBOZXdJbXB1
cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMgPSAxIDw8IDEyOworc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdCA9IDEgPDwgMTM7CitzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIEdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVy
dHlBYnNlbmNlID0gMSA8PCAxNDsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgSW50ZXJjZXB0
c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyA9IDEgPDwg
MTU7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUlzSW1tb3J0YWwgPSAxIDw8
IDE2Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBIYXNQdXRQcm9wZXJ0eVNlY3VyaXR5Q2hl
Y2sgPSAxIDw8IDE3OwogCiBjbGFzcyBUeXBlSW5mbyB7CiBwdWJsaWM6CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90eXBlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBNYXBQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMg
SlNOb25GCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJv
cGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBNYXBQcm90b3R5cGUqIGNyZWF0ZShWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01pbmltdW1SZXNlcnZlZFpvbmVT
aXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWluaW11
bVJlc2VydmVkWm9uZVNpemUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWluaW11bVJlc2VydmVkWm9uZVNpemUuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
OSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogICAgIAotc3RhdGljIGNvbnN0IHVuc2ln
bmVkIG1pbmltdW1SZXNlcnZlZFpvbmVTaXplID0gMTYgKiBLQjsKK3N0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgbWluaW11bVJlc2VydmVkWm9uZVNpemUgPSAxNiAqIEtCOwogICAgIAogfSAvLyBu
YW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVs
ZVByb2dyYW1FeGVjdXRhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkt
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDktMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgTW9kdWxlUHJvZ3JhbUV4ZWN1
dGFibGUgZmluYWwgOiBwdQogICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7
CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEdsb2JhbEV4ZWN1dGFibGU7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBT
dHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3MgbW9kZT4KICAg
ICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUV4ZWN1dGFibGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFeGVjdXRhYmxlLmgJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUV4ZWN1dGFi
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBOYXRpdmVFeGVjdXRh
YmxlIGZpbmFsIDogcHVibGljIEV4CiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJh
Y3RvcjsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEV4ZWN1dGFibGVCYXNlIEJhc2U7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7
CiAKICAgICBzdGF0aWMgTmF0aXZlRXhlY3V0YWJsZSogY3JlYXRlKFZNJiwgUmVmPEpJVENvZGU+
JiYgY2FsbFRodW5rLCBUYWdnZWROYXRpdmVGdW5jdGlvbiwgUmVmPEpJVENvZGU+JiYgY29uc3Ry
dWN0VGh1bmssIFRhZ2dlZE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yLCBjb25zdCBTdHJpbmcm
IG5hbWUpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVGdW5j
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2
ZUZ1bmN0aW9uLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL05hdGl2ZUZ1bmN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjAsNyArNjAsNyBAQCBwcml2
YXRlOgogc3RydWN0IE5hdGl2ZUZ1bmN0aW9uSGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhh
c2goTmF0aXZlRnVuY3Rpb24ga2V5KSB7IHJldHVybiBJbnRIYXNoPHVpbnRwdHJfdD46Omhhc2go
Yml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oa2V5KSk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChO
YXRpdmVGdW5jdGlvbiBhLCBOYXRpdmVGdW5jdGlvbiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAg
ICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gdHJ1ZTsKIH07CiAKIGNsYXNzIFRhZ2dlZE5hdGl2ZUZ1bmN0aW9uIHsKQEAgLTk4LDcgKzk4
LDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBUYWdnZWROYXRpdmVGdW5jdGlvbkhhc2ggewogICAgIHN0
YXRpYyB1bnNpZ25lZCBoYXNoKFRhZ2dlZE5hdGl2ZUZ1bmN0aW9uIGtleSkgeyByZXR1cm4gSW50
SGFzaDx1aW50cHRyX3Q+OjpoYXNoKGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGtleSkpOyB9CiAg
ICAgc3RhdGljIGJvb2wgZXF1YWwoVGFnZ2VkTmF0aXZlRnVuY3Rpb24gYSwgVGFnZ2VkTmF0aXZl
RnVuY3Rpb24gYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2Fm
ZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiBzdGF0aWNf
YXNzZXJ0KHNpemVvZihOYXRpdmVGdW5jdGlvbikgPT0gc2l6ZW9mKHZvaWQqKSwgIiIpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlU3RkRnVuY3Rpb25DZWxsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlU3RkRnVu
Y3Rpb25DZWxsLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL05hdGl2ZVN0ZEZ1bmN0aW9uQ2VsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDggKzMzLDgg
QEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBOYXRpdmVTdGRGdW5jdGlvbkNlbGwgZmluYWwgOiBw
dWJsaWMgSlNDZWxsIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3Ry
dWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKIAogICAgIHN0YXRp
YyBOYXRpdmVTdGRGdW5jdGlvbkNlbGwqIGNyZWF0ZShWTSYsIE5hdGl2ZVN0ZEZ1bmN0aW9uJiYp
OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rv
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNv
bnN0cnVjdG9yLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBA
CiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtk
ZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0zMCw3ICszMCw3IEBAIGNsYXNzIEdl
dHRlclNldHRlcjsKIGNsYXNzIE51bWJlckNvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVy
bmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNl
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSGFzU3RhdGljUHJvcGVydHlUYWJs
ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3MgfCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBIYXNTdGF0aWNQcm9wZXJ0
eVRhYmxlOwogCiAgICAgc3RhdGljIE51bWJlckNvbnN0cnVjdG9yKiBjcmVhdGUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgTnVtYmVyUHJvdG90eXBlKiBudW1iZXJQcm90b3R5cGUsIEdl
dHRlclNldHRlciopCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4g
KHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjcsNyAr
MjcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIE51bWJlclByb3RvdHlwZSBmaW5hbCA6IHB1
YmxpYyBOdW1iZXJPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgTnVtYmVyT2JqZWN0IEJh
c2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0
YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgTnVtYmVyUHJvdG90eXBlKiBjcmVhdGUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25z
dHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiAr
MSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9y
dGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDE2LTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTM3LDcg
KzM3LDcgQEAgY2xhc3MgT2JqZWN0UHJvdG90eXBlOwogY2xhc3MgT2JqZWN0Q29uc3RydWN0b3Ig
ZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBJ
bnRlcm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgT2JqZWN0
Q29uc3RydWN0b3IqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBPYmplY3RQcm90b3R5cGUqIG9iamVjdFByb3RvdHlwZSkK
ICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5
cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAv
KgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5v
cmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yNyw3ICsyNyw3IEBAIG5hbWVz
cGFjZSBKU0MgewogY2xhc3MgT2JqZWN0UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmlu
YWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3Q7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
SXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3Q7CiAKICAgICBzdGF0aWMgT2JqZWN0UHJv
dG90eXBlKiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9ncmFtRXhlY3V0YWJsZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb2dyYW1FeGVjdXRhYmxl
LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b2dyYW1FeGVjdXRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA5LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNz
IFByb2dyYW1FeGVjdXRhYmxlIGZpbmFsIDogcHVibGljIEcKICAgICBmcmllbmQgY2xhc3MgTExJ
bnRPZmZzZXRzRXh0cmFjdG9yOwogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBHbG9iYWxFeGVj
dXRhYmxlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1
Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNw
YWNlQWNjZXNzPgogICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VE
ZWZlcnJlZFRpbWVyLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NSw3ICszNSw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogbmFtZXNwYWNlIFByb21pc2VEZWZlcnJl
ZFRpbWVySW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3Rh
dGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogUHJvbWlzZURlZmVycmVk
VGltZXI6OlByb21pc2VEZWZlcnJlZFRpbWVyKFZNJiB2bSkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlNYXBIYXNoVGFibGUuaAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlNYXBI
YXNoVGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTIxLDcgKzEy
MSw3IEBAIGNsYXNzIFByb3BlcnR5VGFibGUgZmluYWwgOiBwdWJsaWMgSlNDZWwKIAogcHVibGlj
OgogICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFs
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+CiAgICAgc3RhdGljIElzb1N1YnNwYWNlKiBz
dWJzcGFjZUZvcihWTSYgdm0pCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gJnZtLnByb3BlcnR5VGFibGVTcGFjZTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
bmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwq
KTsKIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CkBAIC0yMDIsNyArMjAyLDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZJbmRleE1hc2soKSB7IHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoUHJvcGVydHlUYWJsZSwgbV9pbmRleE1hc2spOyB9CiAgICAgc3RhdGljIHB0
cmRpZmZfdCBvZmZzZXRPZkluZGV4KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFByb3BlcnR5
VGFibGUsIG1faW5kZXgpOyB9CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgRW1wdHlFbnRy
eUluZGV4ID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEVtcHR5RW50cnlJbmRl
eCA9IDA7CiAKIHByaXZhdGU6CiAgICAgUHJvcGVydHlUYWJsZShWTSYsIHVuc2lnbmVkIGluaXRp
YWxDYXBhY2l0eSk7CkBAIC0yNTgsNyArMjU4LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBt
X2RlbGV0ZWRDb3VudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPFByb3BlcnR5T2Zmc2V0
Pj4gbV9kZWxldGVkT2Zmc2V0czsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBNaW5pbXVt
VGFibGVTaXplID0gMTY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBNaW5pbXVtVGFi
bGVTaXplID0gMTY7CiB9OwogCiBpbmxpbmUgUHJvcGVydHlUYWJsZTo6aXRlcmF0b3IgUHJvcGVy
dHlUYWJsZTo6YmVnaW4oKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
cGVydHlOYW1lQXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTUsNyArMTE1LDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIFByb3BlcnR5TmFtZUFycmF5Ojph
ZAogCiBBTFdBWVNfSU5MSU5FIHZvaWQgUHJvcGVydHlOYW1lQXJyYXk6OmFkZChVbmlxdWVkU3Ry
aW5nSW1wbCogaWRlbnRpZmllcikKIHsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2V0VGhy
ZXNob2xkID0gMjA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzZXRUaHJlc2hvbGQg
PSAyMDsKIAogICAgIEFTU0VSVChpZGVudGlmaWVyKTsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvdG90eXBlS2V5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJvdG90eXBlS2V5LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3RvdHlwZUtleS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIAogcHJpdmF0ZToKICAgICAvLyBXQVJOSU5HOiBX
ZSByZXF1aXJlIGFsbCBvZiB0aGVzZSBkZWZhdWx0IHZhbHVlcyB0byBiZSB6ZXJvLiBPdGhlcndp
c2UsIHlvdSdsbCBuZWVkIHRvIGFkZAotICAgIC8vICJzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZh
bHVlSXNaZXJvID0gZmFsc2U7IiB0byB0aGUgSGFzaFRyYWl0cyBhdCB0aGUgYm90dG9tIG9mIHRo
aXMgZmlsZS4KKyAgICAvLyAic3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8g
PSBmYWxzZTsiIHRvIHRoZSBIYXNoVHJhaXRzIGF0IHRoZSBib3R0b20gb2YgdGhpcyBmaWxlLgog
ICAgIEpTT2JqZWN0KiBtX3Byb3RvdHlwZSB7IG51bGxwdHIgfTsgCiAgICAgRnVuY3Rpb25FeGVj
dXRhYmxlKiBtX2V4ZWN1dGFibGUgeyBudWxscHRyIH07IAogICAgIHVuc2lnbmVkIG1faW5saW5l
Q2FwYWNpdHkgeyAwIH07CkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgUHJvdG90
eXBlS2V5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgUHJvdG90eXBlS2V5
JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25z
dCBQcm90b3R5cGVLZXkmIGEsIGNvbnN0IFByb3RvdHlwZUtleSYgYikgeyByZXR1cm4gYSA9PSBi
OyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQg
PSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9y
RGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmgJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3Mg
UHJveHlDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3M7CiAKICAgICBzdGF0aWMgUHJveHlDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiwgU3RydWN0dXJl
Kik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVj
dC5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3h5T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTc0LDggKzk3NCw4IEBAIHZvaWQg
UHJveHlPYmplY3Q6OnBlcmZvcm1HZXRPd25Qcm9wZXJ0eU4KICAgICAgICAgQVNTRVJUKHJlc3Vs
dEZpbHRlcik7CiAKICAgICAgICAgYXV0byBhZGRQcm9wTmFtZSA9IFsmXSAoSlNWYWx1ZSB2YWx1
ZSwgUnVudGltZVR5cGUgdHlwZSkgLT4gYm9vbCB7Ci0gICAgICAgICAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBkb0V4aXRFYXJseSA9IHRydWU7Ci0gICAgICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBk
b250RXhpdEVhcmx5ID0gZmFsc2U7CisgICAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
ZG9FeGl0RWFybHkgPSB0cnVlOworICAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGRv
bnRFeGl0RWFybHkgPSBmYWxzZTsKIAogICAgICAgICAgICAgSWRlbnRpZmllciBpZGVudCA9IHZh
bHVlLnRvUHJvcGVydHlLZXkoZXhlYyk7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBkb0V4aXRFYXJseSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eVJldm9rZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3h5UmV2b2tlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyArMzQsNyBAQCBj
bGFzcyBQcm94eU9iamVjdDsKIGNsYXNzIFByb3h5UmV2b2tlIGZpbmFsIDogcHVibGljIEludGVy
bmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNl
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBl
LCBTdWJzcGFjZUFjY2VzcyBtb2RlPgogICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VG
b3IoVk0mIHZtKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVmbGVjdE9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxl
Y3RPYmplY3QuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVmbGVjdE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcgKzM1LDcgQEAgcHJpdmF0
ZToKIAogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0
eVRhYmxlOwogCiAgICAgc3RhdGljIFJlZmxlY3RPYmplY3QqIGNyZWF0ZShWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5oCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkg
UG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIw
MDksIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAo
QykgMjAwNy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmln
aHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTQzLDEwICs0
MywxMCBAQCBjbGFzcyBSZWdFeHAgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIAogcHVibGljOgog
ICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICBKU19FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgUmVnRXhwKiBjcmVhdGUoVk0mLCBjb25zdCBTdHJpbmcmIHBhdHRlcm4sIE9wdGlv
blNldDxZYXJyOjpGbGFncz4pOwotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rp
b24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0g
dHJ1ZTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogICAgIHN0YXRpYyBzaXpl
X3QgZXN0aW1hdGVkU2l6ZShKU0NlbGwqLCBWTSYpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0
YXRpYyB2b2lkIGR1bXBUb1N0cmVhbShjb25zdCBKU0NlbGwqLCBQcmludFN0cmVhbSYpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNoZS5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNoZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDEwIFVu
aXZlcnNpdHkgb2YgU3plZ2VkCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUmVuYXRhIEhvZG92YW4g
KGhvZG92YW5AaW5mLnUtc3plZ2VkLmh1KQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDkgKzYwLDkgQEAgcHVibGljOgogCiBwcml2
YXRlOgogICAgIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhTdHJvbmdDYWNoZWFibGVQ
YXR0ZXJuTGVuZ3RoID0gMjU2OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4U3Ry
b25nQ2FjaGVhYmxlUGF0dGVybkxlbmd0aCA9IDI1NjsKIAotICAgIHN0YXRpYyBjb25zdCBpbnQg
bWF4U3Ryb25nQ2FjaGVhYmxlRW50cmllcyA9IDMyOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50
IG1heFN0cm9uZ0NhY2hlYWJsZUVudHJpZXMgPSAzMjsKIAogICAgIHZvaWQgZmluYWxpemUoSGFu
ZGxlPFVua25vd24+LCB2b2lkKiBjb250ZXh0KSBvdmVycmlkZTsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQg
KEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdo
dCAoQykgMjAwMy0yMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqICBDb3B5
cmlnaHQgKEMpIDIwMDMtMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgog
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIEdldHRlclNldHRlcjsKIGNs
YXNzIFJlZ0V4cENvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewog
cHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNlOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFz
U3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxl
OwogCiAgICAgc3RhdGljIFJlZ0V4cENvbnN0cnVjdG9yKiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgUmVnRXhwUHJvdG90eXBlKiByZWdFeHBQcm90b3R5cGUsIEdldHRlclNl
dHRlciogc3BlY2llcykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBLZXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBLZXkuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwS2V5LmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgVW5pdmVyc2l0eSBvZiBTemVnZWQKICAqIENvcHlyaWdodCAoQykg
MjAxMCBSZW5hdGEgSG9kb3ZhbiAoaG9kb3ZhbkBpbmYudS1zemVnZWQuaHUpCiAgKiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjksNyArNzAs
NyBAQCBzdHJ1Y3QgUmVnRXhwS2V5IHsKICAgICBzdHJ1Y3QgSGFzaCB7CiAgICAgICAgIHN0YXRp
YyB1bnNpZ25lZCBoYXNoKGNvbnN0IFJlZ0V4cEtleSYga2V5KSB7IHJldHVybiBrZXkucGF0dGVy
bi0+aGFzaCgpOyB9CiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFJlZ0V4cEtleSYg
YSwgY29uc3QgUmVnRXhwS2V5JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICAgICAgc3RhdGlj
IGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKKyAgICAg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0g
ZmFsc2U7CiAgICAgfTsKIH07CiAKQEAgLTk0LDcgKzk1LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
RGVmYXVsdEhhc2g8SlNDOjpSZWdFeAogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0
czxKU0M6OlJlZ0V4cEtleT4gOiBHZW5lcmljSGFzaFRyYWl0czxKU0M6OlJlZ0V4cEtleT4gewot
ICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1ZTsKICAgICBzdGF0aWMgdm9p
ZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoSlNDOjpSZWdFeHBLZXkmIHNsb3QpIHsgc2xvdC5mbGFn
c1ZhbHVlID0gSlNDOjpZYXJyOjpGbGFnczo6RGVsZXRlZFZhbHVlOyB9CiAgICAgc3RhdGljIGJv
b2wgaXNEZWxldGVkVmFsdWUoY29uc3QgSlNDOjpSZWdFeHBLZXkmIHZhbHVlKSB7IHJldHVybiB2
YWx1ZS5mbGFnc1ZhbHVlID09IEpTQzo6WWFycjo6RmxhZ3M6OkRlbGV0ZWRWYWx1ZTsgfQogfTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBP
YmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0
IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmln
aHQgKEMpIDIwMDMsIDIwMDctMjAwOCwgMjAxMiwgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTkgQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzAsNyArMzAsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIGNsYXNzIFJlZ0V4cE9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFs
T2JqZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5
TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJp
ZGVzR2V0UHJvcGVydHlOYW1lczsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IGxh
c3RJbmRleElzTm90V3JpdGFibGVGbGFnID0gMTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBI
YXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwMywgMjAw
Ny0yMDA4LCAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqICBDb3B5cmln
aHQgKEMpIDIwMDMtMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgUmVn
RXhwUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgog
ICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsK
IAogICAgIHN0YXRpYyBSZWdFeHBQcm90b3R5cGUqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwU3Ry
aW5nSXRlcmF0b3JQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQWxleGV5
IFNodmF5a2EgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMiw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgUmVnRXhwU3Ry
aW5nSXRlcmF0b3JQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBw
dWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNT
dGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7
CiAKICAgICBzdGF0aWMgUmVnRXhwU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUqIGNyZWF0ZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQog
ICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmls
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBs
aW5nUHJvZmlsZXIuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsOCAr
NjUsOCBAQCBzdGF0aWMgZG91YmxlIHNOdW1Ub3RhbFdhbGtzID0gMDsKIHN0YXRpYyBkb3VibGUg
c051bUZhaWxlZFdhbGtzID0gMDsKIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzTnVtV2Fsa1JlcG9y
dGluZ0ZyZXF1ZW5jeSA9IDUwOwogc3RhdGljIGNvbnN0IGRvdWJsZSBzV2Fsa0Vycm9yUGVyY2Vu
dGFnZSA9IC4wNTsKLXN0YXRpYyBjb25zdCBib29sIHNSZXBvcnRTdGF0c09ubHlXaGVuVGhleXJl
QWJvdmVUaHJlc2hvbGQgPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBib29sIHNSZXBvcnRTdGF0cyA9
IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHNSZXBvcnRTdGF0c09ubHlXaGVuVGhleXJl
QWJvdmVUaHJlc2hvbGQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCBzUmVwb3J0U3Rh
dHMgPSBmYWxzZTsKIAogdXNpbmcgRnJhbWVUeXBlID0gU2FtcGxpbmdQcm9maWxlcjo6RnJhbWVU
eXBlOwogdXNpbmcgVW5wcm9jZXNzZWRTdGFja0ZyYW1lID0gU2FtcGxpbmdQcm9maWxlcjo6VW5w
cm9jZXNzZWRTdGFja0ZyYW1lOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2NvcGVkQXJndW1lbnRzVGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TY29wZWRBcmd1bWVudHNUYWJsZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZWRBcmd1bWVudHNUYWJsZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBTY29wZWRBcmd1bWVudHNUYWJsZSBm
aW5hbCA6IHB1YmxpCiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFs
OwogICAgIAogcHJpdmF0ZToKICAgICBTY29wZWRBcmd1bWVudHNUYWJsZShWTSYpOwpAQCAtNTMs
NyArNTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFNjb3BlZEFyZ3VtZW50c1RhYmxlKiBjcmVh
dGUoVk0mKTsKICAgICBzdGF0aWMgU2NvcGVkQXJndW1lbnRzVGFibGUqIGNyZWF0ZShWTSYsIHVp
bnQzMl90IGxlbmd0aCk7CiAgICAgCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVj
dGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24g
PSB0cnVlOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKICAgICBTY29wZWRB
cmd1bWVudHNUYWJsZSogY2xvbmUoVk0mKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBJc29DZWxsU2V0OwogY2xhc3MgU2NyaXB0RXhl
Y3V0YWJsZSA6IHB1YmxpYyBFeGVjdXRhYmxlQmFzZSB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBF
eGVjdXRhYmxlQmFzZSBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHN0YXRpYyB2
b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NldFByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NldFByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TZXRQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw3ICszMyw3
IEBAIGNsYXNzIFNldFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkYKIHB1YmxpYzoKICAg
ICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJv
cGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAg
c3RhdGljIFNldFByb3RvdHlwZSogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmgJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDA5LCAyMDE1
LTIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFZNOwogY2xhc3MgSlNTdHJp
bmc7CiBjbGFzcyBTbG90VmlzaXRvcjsKIAotc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFNpbmds
ZUNoYXJhY3RlclN0cmluZyA9IDB4RkY7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heFNp
bmdsZUNoYXJhY3RlclN0cmluZyA9IDB4RkY7CiAKIGNsYXNzIFNtYWxsU3RyaW5ncyB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoU21hbGxTdHJpbmdzKTsKQEAgLTEyNSw3ICsxMjUsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaW5n
bGVDaGFyYWN0ZXJTdHJpbmdDb3VudCA9IG1heFNpbmdsZUNoYXJhY3RlclN0cmluZyArIDE7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzaW5nbGVDaGFyYWN0ZXJTdHJpbmdDb3VudCA9
IG1heFNpbmdsZUNoYXJhY3RlclN0cmluZyArIDE7CiAKICAgICB2b2lkIGluaXRpYWxpemUoVk0q
LCBKU1N0cmluZyomLCBjb25zdCBjaGFyKiB2YWx1ZSk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmgJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NwYXJzZUFycmF5VmFs
dWVNYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKIGNsYXNz
IFNwYXJzZUFycmF5VmFsdWVNYXAgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIHB1YmxpYzoKICAg
ICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogICAgIAogcHJpdmF0ZToKICAgICB0eXBl
ZGVmIEhhc2hNYXA8dWludDY0X3QsIFNwYXJzZUFycmF5RW50cnksIFdURjo6SW50SGFzaDx1aW50
NjRfdD4sIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDY0X3Q+PiBNYXA7
CkBAIC0xMDMsNyArMTAzLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFNwYXJzZUFycmF5VmFs
dWVNYXAqIGNyZWF0ZShWTSYpOwogICAgIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVz
dHJ1Y3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0
aW9uID0gdHJ1ZTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogICAgIAogICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0Kiwg
SlNWYWx1ZSBwcm90b3R5cGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQ
b3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAt
MzAsNyArMzAsNyBAQCBjbGFzcyBHZXR0ZXJTZXR0ZXI7CiBjbGFzcyBTdHJpbmdDb25zdHJ1Y3Rv
ciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVm
IEludGVybmFsRnVuY3Rpb24gQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBTdHJp
bmdDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFN0cmlu
Z1Byb3RvdHlwZSogc3RyaW5nUHJvdG90eXBlLCBHZXR0ZXJTZXR0ZXIqKQogICAgIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nSXRlcmF0
b3JQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlLCBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRh
dGFuZS50ZWFAZ21haWwuY29tPi4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTMzLDcgKzMzLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBTdHJpbmdJdGVyYXRvclByb3RvdHlwZSBmaW5hbCA6IHB1
YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxP
YmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBTdHJpbmdJdGVyYXRvclBy
b3RvdHlwZSogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3
ICsyOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgU3RyaW5nT2JqZWN0IDogcHVibGljIEpT
V3JhcHBlck9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTV3JhcHBlck9iamVj
dDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVyY2VwdHNHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBPdmVycmlkZXNH
ZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05v
dFplcm8gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogCiAgICAgc3RhdGljIFN0cmluZ09i
amVjdCogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmln
aHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHly
aWdodCAoQykgMjAwNy0yMDA4LCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0zNSw3ICszNSw3IEBAIHByaXZhdGU6
CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIFN0cmluZ09iamVjdCBCYXNlOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFz
U3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxl
OwogCiAgICAgc3RhdGljIFN0cmluZ1Byb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSwxMSArNjUsMTEgQEAgc3Ry
dWN0IER1bXBDb250ZXh0OwogLy8gVGhlIG91dC1vZi1saW5lIHByb3BlcnR5IHN0b3JhZ2UgY2Fw
YWNpdHkgdG8gdXNlIHdoZW4gZmlyc3QgYWxsb2NhdGluZyBvdXQtb2YtbGluZQogLy8gc3RvcmFn
ZS4gTm90ZSB0aGF0IGFsbCBvYmplY3RzIHN0YXJ0IG91dCB3aXRob3V0IGhhdmluZyBhbnkgb3V0
LW9mLWxpbmUgc3RvcmFnZTsKIC8vIHRoaXMgY29tZXMgaW50byBwbGF5IG9ubHkgb24gdGhlIGZp
cnN0IHByb3BlcnR5IHN0b3JlIHRoYXQgZXhoYXVzdHMgaW5saW5lIHN0b3JhZ2UuCi1zdGF0aWMg
Y29uc3QgdW5zaWduZWQgaW5pdGlhbE91dE9mTGluZUNhcGFjaXR5ID0gNDsKK3N0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgaW5pdGlhbE91dE9mTGluZUNhcGFjaXR5ID0gNDsKIAogLy8gVGhlIGZh
Y3RvciBieSB3aGljaCB0byBncm93IG91dC1vZi1saW5lIHN0b3JhZ2Ugd2hlbiBpdCBpcyBleGhh
dXN0ZWQsIGFmdGVyIHRoZQogLy8gaW5pdGlhbCBhbGxvY2F0aW9uLgotc3RhdGljIGNvbnN0IHVu
c2lnbmVkIG91dE9mTGluZUdyb3d0aEZhY3RvciA9IDI7CitzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIG91dE9mTGluZUdyb3d0aEZhY3RvciA9IDI7CiAKIHN0cnVjdCBQcm9wZXJ0eU1hcEVudHJ5
IHsKICAgICBVbmlxdWVkU3RyaW5nSW1wbCoga2V5OwpAQCAtMTI0LDcgKzEyNCw3IEBAIHB1Ymxp
YzoKICAgICBmcmllbmQgY2xhc3MgU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlOwogCiAgICAgdHlw
ZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKICAgICAKICAgICBlbnVtIFBvbHlQcm90b1RhZyB7
IFBvbHlQcm90byB9OwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZShWTSYsIEpTR2xvYmFs
T2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IFR5cGVJbmZvJiwgY29uc3QgQ2xhc3NJ
bmZvKiwgSW5kZXhpbmdUeXBlID0gTm9uQXJyYXksIHVuc2lnbmVkIGlubGluZUNhcGFjaXR5ID0g
MCk7CkBAIC0yMDEsNyArMjAxLDcgQEAgcHVibGljOgogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
U3RydWN0dXJlKiBmbGF0dGVuRGljdGlvbmFyeVN0cnVjdHVyZShWTSYsIEpTT2JqZWN0Kik7CiAK
LSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAgICAgc3RhdGljIHZv
aWQgZGVzdHJveShKU0NlbGwqKTsKIAogICAgIC8vIFZlcnNpb25zIHRoYXQgdGFrZSBhIGZ1bmMg
d2lsbCBjYWxsIGl0IGFmdGVyIG1ha2luZyB0aGUgY2hhbmdlIGJ1dCB3aGlsZSBzdGlsbCBob2xk
aW5nCkBAIC02MjcsOCArNjI3LDggQEAgcHJpdmF0ZToKIAogcHVibGljOgogI2RlZmluZSBERUZJ
TkVfQklURklFTEQodHlwZSwgbG93ZXJOYW1lLCB1cHBlck5hbWUsIHdpZHRoLCBvZmZzZXQpIFwK
LSAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc18jI2xvd2VyTmFtZSMjU2hpZnQgPSBvZmZzZXQ7
XAotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzXyMjbG93ZXJOYW1lIyNNYXNrID0gKCgxIDw8
ICh3aWR0aCAtIDEpKSB8ICgoMSA8PCAod2lkdGggLSAxKSkgLSAxKSk7XAorICAgIHN0YXRpYyBj
b25zdGV4cHIgdWludDMyX3Qgc18jI2xvd2VyTmFtZSMjU2hpZnQgPSBvZmZzZXQ7XAorICAgIHN0
YXRpYyBjb25zdGV4cHIgdWludDMyX3Qgc18jI2xvd2VyTmFtZSMjTWFzayA9ICgoMSA8PCAod2lk
dGggLSAxKSkgfCAoKDEgPDwgKHdpZHRoIC0gMSkpIC0gMSkpO1wKICAgICB0eXBlIGxvd2VyTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGU+KChtX2JpdEZpZWxkID4+IG9mZnNl
dCkgJiBzXyMjbG93ZXJOYW1lIyNNYXNrKTsgfVwKICAgICB2b2lkIHNldCMjdXBwZXJOYW1lKHR5
cGUgbmV3VmFsdWUpIFwKICAgICB7XApAQCAtNzQ4LDggKzc0OCw4IEBAIHByaXZhdGU6CiAgICAg
CiAgICAgdm9pZCBzdGFydFdhdGNoaW5nSW50ZXJuYWxQcm9wZXJ0aWVzKFZNJik7CiAKLSAgICBz
dGF0aWMgY29uc3QgaW50IHNfbWF4VHJhbnNpdGlvbkxlbmd0aCA9IDY0OwotICAgIHN0YXRpYyBj
b25zdCBpbnQgc19tYXhUcmFuc2l0aW9uTGVuZ3RoRm9yTm9uRXZhbFB1dEJ5SWQgPSA1MTI7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgc19tYXhUcmFuc2l0aW9uTGVuZ3RoID0gNjQ7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBpbnQgc19tYXhUcmFuc2l0aW9uTGVuZ3RoRm9yTm9uRXZhbFB1dEJ5
SWQgPSA1MTI7CiAKICAgICAvLyBUaGVzZSBuZWVkIHRvIGJlIHByb3Blcmx5IGFsaWduZWQgYXQg
dGhlIGJlZ2lubmluZyBvZiB0aGUgJ1N0cnVjdHVyZScKICAgICAvLyBwYXJ0IG9mIHRoZSBvYmpl
Y3QuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNo
YWluLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUNoYWluLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBTdHJ1
Y3R1cmVDaGFpbiBmaW5hbCA6IHB1YmxpYyBKU0NlCiAKIHB1YmxpYzoKICAgICB1c2luZyBCYXNl
ID0gSlNDZWxsOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBT
dHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZUNoYWluKiBjcmVhdGUo
Vk0mLCBKU09iamVjdCopOwogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+KiBoZWFkKCkgeyBy
ZXR1cm4gbV92ZWN0b3IuZ2V0KCk7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIE9iamVjdFRvU3RyaW5nQWRhcHRpdmVTdHJ1
Y3R1cmVXYXQKIGNsYXNzIFN0cnVjdHVyZVJhcmVEYXRhIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlz
SW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2Vzcz4KICAgICBzdGF0aWMgSXNvU3Vi
c3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIFN0cnVjdHVyZVJhcmVEYXRhKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUqKTsKIAot
ICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKICAgICBzdGF0aWMgdm9p
ZCBkZXN0cm95KEpTQ2VsbCopOwogCiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0Nl
bGwqLCBTbG90VmlzaXRvciYpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmgJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25U
YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
Y2xhc3MgSlNDZWxsOwogY2xhc3MgU3RydWN0dXJlOwogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQg
Rmlyc3RJbnRlcm5hbEF0dHJpYnV0ZSA9IDEgPDwgNjsgLy8gVXNlIGZvciB0cmFuc2l0aW9ucyB0
aGF0IGRvbid0IGhhdmUgdG8gZG8gd2l0aCBwcm9wZXJ0eSBhZGRpdGlvbnMuCitzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIEZpcnN0SW50ZXJuYWxBdHRyaWJ1dGUgPSAxIDw8IDY7IC8vIFVzZSBm
b3IgdHJhbnNpdGlvbnMgdGhhdCBkb24ndCBoYXZlIHRvIGRvIHdpdGggcHJvcGVydHkgYWRkaXRp
b25zLgogCiAvLyBTdXBwb3J0IGZvciBhdHRyaWJ1dGVzIHVzZWQgdG8gaW5kaWNhdGUgdHJhbnNp
dGlvbnMgbm90IHJlbGF0ZWQgdG8gcHJvcGVydGllcy4KIC8vIElmIGFueSBvZiB0aGVzZSBhcmUg
dXNlZCwgdGhlIHN0cmluZyBwb3J0aW9uIG9mIHRoZSBrZXkgc2hvdWxkIGJlIDAuCkBAIC0xNDAs
NyArMTQwLDcgQEAgaW5saW5lIGJvb2wgc2V0c1JlYWRPbmx5T25Ob25BY2Nlc3NvclBybwogfQog
CiBjbGFzcyBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUgewotICAgIHN0YXRpYyBjb25zdCBpbnRw
dHJfdCBVc2luZ1NpbmdsZVNsb3RGbGFnID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIGludHB0
cl90IFVzaW5nU2luZ2xlU2xvdEZsYWcgPSAxOwogCiAgICAgCiAgICAgc3RydWN0IEhhc2ggewpA
QCAtMTU2LDcgKzE1Niw3IEBAIGNsYXNzIFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZSB7CiAgICAg
ICAgICAgICByZXR1cm4gYSA9PSBiOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIGNvbnN0
IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgICAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwog
ICAgIH07CiAKICAgICB0eXBlZGVmIFdlYWtHQ01hcDxIYXNoOjpLZXksIFN0cnVjdHVyZSwgSGFz
aD4gVHJhbnNpdGlvbk1hcDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5
bWJvbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJv
bC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
eW1ib2wuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTItMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTUtMjAxNiBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzQsMTEgKzM0LDExIEBAIG5hbWVzcGFjZSBKU0Mgewog
Y2xhc3MgU3ltYm9sIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWwgfCBPdmVycmlkZXNU
b1RoaXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbCB8IE92ZXJyaWRlc1RvVGhp
czsKIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBu
ZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNE
ZXN0cnVjdGlvbiA9IHRydWU7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25z
dHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5
bWJvbENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzYsNyArMzYsNyBAQCBjbGFz
cyBHZXR0ZXJTZXR0ZXI7CiBjbGFzcyBTeW1ib2xDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJ
bnRlcm5hbEZ1bmN0aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24g
QmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFz
U3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBTeW1ib2xDb25zdHJ1Y3RvciogY3Jl
YXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFN5bWJvbFByb3RvdHlwZSogcHJvdG90
eXBlLCBHZXR0ZXJTZXR0ZXIqKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N5bWJvbFByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1
a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zNSw3ICsz
NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgU3ltYm9sUHJvdG90eXBlIGZpbmFsIDogcHVi
bGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9i
amVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIFN5bWJvbFByb3RvdHlwZSog
Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3lt
Ym9sVGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
eW1ib2xUYWJsZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TeW1ib2xUYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMi0yMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDMz
LDcgKzQzMyw3IEBAIHByaXZhdGU6CiB9OwogCiBzdHJ1Y3QgU3ltYm9sVGFibGVJbmRleEhhc2hU
cmFpdHMgOiBIYXNoVHJhaXRzPFN5bWJvbFRhYmxlRW50cnk+IHsKLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
bmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiB9OwogCiBjbGFzcyBTeW1ib2xUYWJsZSBmaW5hbCA6
IHB1YmxpYyBKU0NlbGwgewpAQCAtNDQxLDcgKzQ0MSw3IEBAIGNsYXNzIFN5bWJvbFRhYmxlIGZp
bmFsIDogcHVibGljIEpTQ2VsbCAKIAogcHVibGljOgogICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlz
SW1tb3J0YWw7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBs
PiwgU3ltYm9sVGFibGVFbnRyeSwgSWRlbnRpZmllclJlcEhhc2gsIEhhc2hUcmFpdHM8UmVmUHRy
PFVuaXF1ZWRTdHJpbmdJbXBsPj4sIFN5bWJvbFRhYmxlSW5kZXhIYXNoVHJhaXRzPiBNYXA7CiAg
ICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4sIEdsb2JhbFZhcmlh
YmxlSUQsIElkZW50aWZpZXJSZXBIYXNoPiBVbmlxdWVJRE1hcDsKQEAgLTQ2Miw3ICs0NjIsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzeW1ib2xUYWJsZTsKICAgICB9CiAgICAgCi0gICAg
c3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0YXRpYyB2b2lkIGRl
c3Ryb3koSlNDZWxsKik7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBsYXRlT2JqZWN0RGVzY3Jp
cHRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1RlbXBs
YXRlT2JqZWN0RGVzY3JpcHRvci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9UZW1wbGF0ZU9iamVjdERlc2NyaXB0b3IuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgWXVzdWtlIFN1enVr
aSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTU5LDcgKzYwLDcgQEAgcHVibGljOgogICAgIHN0cnVjdCBIYXNoZXIgewogICAgICAgICBz
dGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBUZW1wbGF0ZU9iamVjdERlc2NyaXB0b3ImIGtleSkg
eyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBU
ZW1wbGF0ZU9iamVjdERlc2NyaXB0b3ImIGEsIGNvbnN0IFRlbXBsYXRlT2JqZWN0RGVzY3JpcHRv
ciYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVU
b0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAgICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogICAgIH07CiAK
ICAgICBzdGF0aWMgdW5zaWduZWQgY2FsY3VsYXRlSGFzaChjb25zdCBTdHJpbmdWZWN0b3ImIHJh
d1N0cmluZ3MpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2Zp
bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBl
UHJvZmlsZXIuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UeXBlUHJvZmlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDcgKzMzLDcgQEAKIG5h
bWVzcGFjZSBKU0MgewogCiBuYW1lc3BhY2UgVHlwZVByb2ZpbGVySW50ZXJuYWwgewotc3RhdGlj
IGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJv
c2UgPSBmYWxzZTsKIH0KIAogVHlwZVByb2ZpbGVyOjpUeXBlUHJvZmlsZXIoKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmgJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAx
OSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTkwLDcgKzkwLDcgQEAgc3RydWN0IFF1ZXJ5S2V5IHsKIHN0cnVjdCBRdWVy
eUtleUhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFF1ZXJ5S2V5JiBrZXkp
IHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBRdWVy
eUtleSYgYSwgY29uc3QgUXVlcnlLZXkmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRp
YyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVl
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkBAIC0xMDQsNyArMTA0LDcgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpRdWVyeQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpRdWVy
eUtleT4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpRdWVyeUtleT4gewotICAgIHN0YXRp
YyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXJMb2cu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9m
aWxlckxvZy5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1R5cGVQcm9maWxlckxvZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsNyBAQAog
bmFtZXNwYWNlIEpTQyB7CiAKIG5hbWVzcGFjZSBUeXBlUHJvZmlsZXJMb2dJbnRlcm5hbCB7Ci1z
dGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wg
dmVyYm9zZSA9IGZhbHNlOwogfQogCiBUeXBlUHJvZmlsZXJMb2c6OlR5cGVQcm9maWxlckxvZyhW
TSYgdm0pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WYXJPZmZzZXQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WYXJPZmZzZXQuaAko
cmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVmFyT2Zm
c2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjIxLDcgKzIyMSw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgVmFy
T2Zmc2V0SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgVmFyT2Zmc2V0JiBr
ZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBW
YXJPZmZzZXQmIGEsIGNvbnN0IFZhck9mZnNldCYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAg
c3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9
IHRydWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKQEAgLTIzNyw3ICsyMzcsNyBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxKU0M6OlZhck9mCiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6
OlZhck9mZnNldD4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpWYXJPZmZzZXQ+IHsKLSAg
ICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdURgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0hlYXBWZXJpZmll
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0hlYXBWZXJp
Zmllci5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29s
cy9IZWFwVmVyaWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDgsNyArNDA4LDcgQEAgdm9p
ZCBIZWFwVmVyaWZpZXI6OmNoZWNrSWZSZWNvcmRlZChIZWFwQwogewogICAgIGJvb2wgZm91bmQg
PSBmYWxzZTsKICAgICBjb25zdCBjaGFyKiBjb25zdCBwcmVmaXggPSAiICAiOwotICAgIHN0YXRp
YyBjb25zdCBib29sIHZlcmJvc2UgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2
ZXJib3NlID0gdHJ1ZTsKIAogICAgIGZvciAoaW50IGN5Y2xlSW5kZXggPSAwOyBjeWNsZUluZGV4
ID4gLW1fbnVtYmVyT2ZDeWNsZXM7IGN5Y2xlSW5kZXgtLSkgewogICAgICAgICBHQ0N5Y2xlJiBj
eWNsZSA9IGN5Y2xlRm9ySW5kZXgoY3ljbGVJbmRleCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3
OSw3ICsyNzksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2Jq
ZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFsc2U7CiAK
ICAgICBzdGF0aWMgU2ltcGxlT2JqZWN0KiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogICAgIHsKQEAgLTMzMiw3ICszMzIsNyBAQCBwdWJsaWM6CiAKICAgICBE
RUNMQVJFX0lORk87CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3Q7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVy
ZSB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OwogCiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpAQCAtNDAwLDcgKzQwMCw3IEBAIHB1YmxpYzoK
IAogICAgIERFQ0xBUkVfSU5GTzsKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OwogCiAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpAQCAtNDcxLDcgKzQ3MSw3IEBAIHByaXZhdGU6CiBj
bGFzcyBSdW50aW1lQXJyYXkgOiBwdWJsaWMgSlNBcnJheSB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBKU0FycmF5IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJ
bnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJv
IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRP
d25Qcm9wZXJ0eVNsb3QgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5X
aGVuTGVuZ3RoSXNOb3RaZXJvIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKIAogICAgIHN0
YXRpYyBSdW50aW1lQXJyYXkqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgewpAQCAtNDkz
LDcgKzQ5Myw3IEBAIHB1YmxpYzoKICAgICAgICAgc3RhdGljX2Nhc3Q8UnVudGltZUFycmF5Kj4o
Y2VsbCktPlJ1bnRpbWVBcnJheTo6flJ1bnRpbWVBcnJheSgpOwogICAgIH0KIAotICAgIHN0YXRp
YyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOwogCiAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogICAgIHsKQEAgLTU5Niw3
ICs1OTYsNyBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJFX0lORk87CiAgICAgdHlwZWRlZiBKU05v
bkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpAQCAtNjQ4LDcgKzY0OCw3IEBAIHB1Ymxp
YzoKIAogICAgIERFQ0xBUkVfSU5GTzsKICAgICB0eXBlZGVmIERPTUpJVE5vZGUgQmFzZTsKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICB7CkBAIC03MzksNyArNzM5LDcgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZP
OwogICAgIHR5cGVkZWYgRE9NSklUTm9kZSBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAog
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKQEAgLTg1OSw3ICs4
NTksNyBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJFX0lORk87CiAgICAgdHlwZWRlZiBET01KSVRO
b2RlIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSog
Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgewpAQCAtOTM4LDcgKzkzOCw3IEBAIHB1YmxpYzoKIAogICAg
IERFQ0xBUkVfSU5GTzsKICAgICB0eXBlZGVmIERPTUpJVE5vZGUgQmFzZTsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3M7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7
CkBAIC05OTcsNyArOTk3LDcgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogICAgIHVz
aW5nIEJhc2UgPSBET01KSVROb2RlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKQEAgLTEwOTUsNyArMTA5NSw3IEBA
IHByaXZhdGU6CiBjbGFzcyBKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXIgOiBwdWJsaWMgSlNOb25G
aW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgSlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJh
dG9yLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUIzSVJHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBCMzsKIAogbmFtZXNwYWNlIHsKIG5hbWVzcGFjZSBXYXNtQjNJUkdlbmVy
YXRvckludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRp
YyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiB9CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDksNyArNDksNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAog
bmFtZXNwYWNlIFdhc21CQlFQbGFuSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAog
QkJRUGxhbjo6QkJRUGxhbihDb250ZXh0KiBjb250ZXh0LCBSZWY8TW9kdWxlSW5mb3JtYXRpb24+
IGluZm8sIEFzeW5jV29yayB3b3JrLCBDb21wbGV0aW9uVGFzayYmIHRhc2ssIENyZWF0ZUVtYmVk
ZGVyV3JhcHBlciYmIGNyZWF0ZUVtYmVkZGVyV3JhcHBlciwgVGhyb3dXYXNtRXhjZXB0aW9uIHRo
cm93V2FzbUV4Y2VwdGlvbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21G
YXVsdFNpZ25hbEhhbmRsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTct
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBX
YXNtIHsKIAogbmFtZXNwYWNlIHsKIG5hbWVzcGFjZSBXYXNtRmF1bHRTaWduYWxIYW5kbGVySW50
ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0
ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIH0KIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgJKHJldmlzaW9uIDI0OTk3NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPENvbnRyb2xF
bnRyeT4mIGNvbnRyb2xTdGFjaygpIHsgcmV0dXJuIG1fY29udHJvbFN0YWNrOyB9CiAKIHByaXZh
dGU6Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAKICAgICBQYXJ0aWFsUmVzdWx0IFdBUk5f
VU5VU0VEX1JFVFVSTiBwYXJzZUJvZHkoKTsKICAgICBQYXJ0aWFsUmVzdWx0IFdBUk5fVU5VU0VE
X1JFVFVSTiBwYXJzZUV4cHJlc3Npb24oKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4uY3BwCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HRm9yT1NSRW50cnlQbGFu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBXYXNtIHsKIAogbmFtZXNwYWNlIFdhc21PTUdGb3JPU1JFbnRyeVBsYW5JbnRlcm5h
bCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHBy
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiBPTUdGb3JPU1JFbnRyeVBsYW46Ok9NR0Zvck9T
UkVudHJ5UGxhbihDb250ZXh0KiBjb250ZXh0LCBSZWY8TW9kdWxlPiYmIG1vZHVsZSwgUmVmPEJC
UUNhbGxlZT4mJiBjYWxsZWUsIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgsIHVpbnQzMl90IGxvb3BJ
bmRleCwgTWVtb3J5TW9kZSBtb2RlLCBDb21wbGV0aW9uVGFzayYmIHRhc2spCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC01MSw3ICs1MSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20g
ewogCiBuYW1lc3BhY2UgV2FzbU9NR1BsYW5JbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwog
fQogCiBPTUdQbGFuOjpPTUdQbGFuKENvbnRleHQqIGNvbnRleHQsIFJlZjxNb2R1bGU+JiYgbW9k
dWxlLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4LCBNZW1vcnlNb2RlIG1vZGUsIENvbXBsZXRpb25U
YXNrJiYgdGFzaykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5jcHAJ
KHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ1LDcgKzQ1LDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgV2FzbSB7CiAKIG5hbWVzcGFjZSBXYXNtUGxhbkludGVybmFsIHsKLXN0YXRpYyBj
b25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7CiB9CiAKIFBsYW46OlBsYW4oQ29udGV4dCogY29udGV4dCwgUmVmPE1vZHVsZUlu
Zm9ybWF0aW9uPiBpbmZvLCBDb21wbGV0aW9uVGFzayYmIHRhc2ssIENyZWF0ZUVtYmVkZGVyV3Jh
cHBlciYmIGNyZWF0ZUVtYmVkZGVyV3JhcHBlciwgVGhyb3dXYXNtRXhjZXB0aW9uIHRocm93V2Fz
bUV4Y2VwdGlvbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TaWduYXR1
cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TaWdu
YXR1cmUuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtU2lnbmF0dXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDcgKzM4LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAogbmFtZXNwYWNlIHsKIG5hbWVzcGFjZSBX
YXNtU2lnbmF0dXJlSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNl
Oworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIH0KIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNpZ25hdHVyZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TaWduYXR1cmUuaAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNpZ25hdHVyZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0cnVjdCBTaWduYXR1cmVIYXNoIHsKICAg
ICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2lnbmF0dXJlSGFzaCYgcmhzKSBjb25zdCB7IHJldHVy
biBlcXVhbCgqdGhpcywgcmhzKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFNpZ25h
dHVyZUhhc2gmIGxocywgY29uc3QgU2lnbmF0dXJlSGFzaCYgcmhzKSB7IHJldHVybiBsaHMua2V5
ID09IHJocy5rZXkgfHwgKGxocy5rZXkgJiYgcmhzLmtleSAmJiAqbGhzLmtleSA9PSAqcmhzLmtl
eSk7IH0KICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBTaWduYXR1cmVIYXNoJiBzaWdu
YXR1cmUpIHsgcmV0dXJuIHNpZ25hdHVyZS5rZXkgPyBzaWduYXR1cmUua2V5LT5oYXNoKCkgOiAw
OyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQg
PSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlP
ckRlbGV0ZWQgPSBmYWxzZTsKICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29u
c3QgeyByZXR1cm4ga2V5LmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KIH07CiAKQEAgLTE0
MSw3ICsxNDEsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxKU0M6Oldhc206CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwogdGVtcGxhdGU8PiBzdHJ1
Y3QgSGFzaFRyYWl0czxKU0M6Oldhc206OlNpZ25hdHVyZUhhc2g+IDogU2ltcGxlQ2xhc3NIYXNo
VHJhaXRzPEpTQzo6V2FzbTo6U2lnbmF0dXJlSGFzaD4gewotICAgIHN0YXRpYyBjb25zdCBib29s
IGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0
eVZhbHVlSXNaZXJvID0gdHJ1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7
CiAKIG5hbWVzcGFjZSBXYXNtV29ya2xpc3RJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwog
fQogCiBjb25zdCBjaGFyKiBXb3JrbGlzdDo6cHJpb3JpdHlTdHJpbmcoUHJpb3JpdHkgcHJpb3Jp
dHkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJs
eS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9K
U1dlYkFzc2VtYmx5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogY2xhc3MgSlNXZWJBc3NlbWJseSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVy
dHlUYWJsZTsKIAogICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5KiBjcmVhdGUoVk0mLCBKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNvZGVCbG9jay5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5Q29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3Mg
UGxhbjsKIGNsYXNzIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2sgZmluYWwgOiBwdWJsaWMgSlNDZWxs
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJl
SXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgc3Rh
dGljIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2sqIGNyZWF0ZShWTSYsIFJlZjxXYXNtOjpDb2RlQmxv
Y2s+LCBjb25zdCBXYXNtOjpNb2R1bGVJbmZvcm1hdGlvbiYpOwogICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQpAQCAtODQsNyArODQsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2soVk0mLCBSZWY8V2FzbTo6Q29kZUJsb2NrPiYmLCBj
b25zdCBXYXNtOjpNb2R1bGVJbmZvcm1hdGlvbiYpOwogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87
Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0YXRpYyB2
b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0Nl
bGwqLCBTbG90VmlzaXRvciYpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1
Y3Rvci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcs
NyArMzcsNyBAQCBjbGFzcyBXZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZTsKIGNsYXNz
IFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRp
Y1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25z
dHJ1Y3RvciogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQ
cm90b3R5cGUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBK
U0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3Rv
dHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcg
KzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBXZWJBc3NlbWJseUNvbXBpbGVFcnJvclBy
b3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0
eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5
VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRp
YyBXZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uaAkocmV2aXNpb24g
MjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5j
dGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICBj
b25zdCBzdGF0aWMgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
czsKIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOworICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKICAgICBzdGF0
aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5
cGUsIFN1YnNwYWNlQWNjZXNzIG1vZGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3Iu
aAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw3ICsz
OSw3IEBAIGNsYXNzIFdlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGU7CiBjbGFzcyBXZWJBc3Nl
bWJseUluc3RhbmNlQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBI
YXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFi
bGU7CiAKICAgICBzdGF0aWMgV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yKiBjcmVhdGUo
Vk0mLCBTdHJ1Y3R1cmUqLCBXZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlKik7CiAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1Zh
bHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5z
dGFuY2VQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5
cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3Mg
V2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVy
dHlUYWJsZTsKIAogICAgIHN0YXRpYyBXZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlKiBjcmVh
dGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0
cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
Ni0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBXZWJBc3NlbWJseUxpbmtFcnJv
clByb3RvdHlwZTsKIGNsYXNzIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IgZmluYWwg
OiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBJbnRlcm5h
bEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgV2ViQXNzZW1ibHlM
aW5rRXJyb3JDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgV2ViQXNzZW1ibHlM
aW5rRXJyb3JQcm90b3R5cGUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JQcm90b3R5cGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvclBy
b3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvclByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcg
KzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBXZWJBc3NlbWJseUxpbmtFcnJvclByb3Rv
dHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFi
bGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBX
ZWJBc3NlbWJseUxpbmtFcnJvclByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0m
LCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3Iu
aAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcs
NyBAQCBjbGFzcyBXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZTsKIGNsYXNzIFdlYkFzc2VtYmx5
TWVtb3J5Q29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJs
aWM6CiAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0
aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAK
ICAgICBzdGF0aWMgV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiwgU3Ry
dWN0dXJlKiwgV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUqKTsKICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5
cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseU1lbW9yeVByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFdlYkFzc2VtYmx5
TWVtb3J5UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGlj
OgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGlj
UHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAg
ICAgc3RhdGljIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlKiBjcmVhdGUoVk0mLCBKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25z
dHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00
MCw3ICs0MCw3IEBAIGNsYXNzIFdlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlOwogY2xhc3MgV2Vi
QXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9u
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlU
YWJsZTsKIAogICAgIHN0YXRpYyBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yKiBjcmVhdGUo
Vk0mLCBTdHJ1Y3R1cmUqLCBXZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZSopOwogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1
ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVs
ZVByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFdlYkFzc2Vt
Ymx5TW9kdWxlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwog
CiAgICAgc3RhdGljIFdlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlKiBjcmVhdGUoVk0mLCBKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
clByb3RvdHlwZTsKIGNsYXNzIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IgZmlu
YWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBJbnRl
cm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3JDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvclByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlU
YWJsZTsKIAogICAgIHN0YXRpYyBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZSogY3Jl
YXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVj
dG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBl
OwogY2xhc3MgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVy
bmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNl
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0
aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rv
ciogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZSopOwog
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0
KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseVRhYmxlUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xh
c3MgV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVy
dHlUYWJsZTsKIAogICAgIHN0YXRpYyBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlKiBjcmVhdGUo
Vk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRvSlNDYWxsZWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRvSlND
YWxsZWUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlUb0pTQ2FsbGVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcg
QEAgY2xhc3MgSlNXZWJBc3NlbWJseU1vZHVsZTsKIGNsYXNzIFdlYkFzc2VtYmx5VG9KU0NhbGxl
ZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBC
YXNlID0gSlNOb25GaW5hbE9iamVjdDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBzdGF0
aWMgV2ViQXNzZW1ibHlUb0pTQ2FsbGVlKiBjcmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCBKU1dlYkFz
c2VtYmx5TW9kdWxlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZN
JiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJyLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA5LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDEwIFBldGVyIFZhcmdhIChwdmFyZ2FAaW5mLnUtc3plZ2VkLmh1KSwgVW5pdmVyc2l0eSBv
ZiBTemVnZWQKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNDIsMTIgKzQyLDEyIEBA
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgWWFyciB7CiAjZGVmaW5lIFlhcnJTdGFja1NwYWNl
Rm9yQmFja1RyYWNrSW5mb1BhcmVudGhlc2VzIDQKICNkZWZpbmUgWWFyclN0YWNrU3BhY2VGb3JE
b3RTdGFyRW5jbG9zdXJlIDEKIAotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHF1YW50aWZ5SW5maW5p
dGUgPSBVSU5UX01BWDsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBvZmZzZXROb01hdGNoID0gc3Rk
OjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOworc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBxdWFudGlmeUluZmluaXRlID0gVUlOVF9NQVg7CitzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIG9mZnNldE5vTWF0Y2ggPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7
CiAKIC8vIFRoZSBiZWxvdyBsaW1pdCByZXN0cmljdHMgdGhlIG51bWJlciBvZiAicmVjdXJzaXZl
IiBtYXRjaCBjYWxscyBpbiBvcmRlciB0bwogLy8gYXZvaWQgc3BlbmRpbmcgZXhwb25lbnRpYWwg
dGltZSBvbiBjb21wbGV4IHJlZ3VsYXIgZXhwcmVzc2lvbnMuCi1zdGF0aWMgY29uc3QgdW5zaWdu
ZWQgbWF0Y2hMaW1pdCA9IDEwMDAwMDA7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1hdGNo
TGltaXQgPSAxMDAwMDAwOwogCiBlbnVtIEpTUmVnRXhwUmVzdWx0IHsKICAgICBKU1JlZ0V4cE1h
dGNoID0gMSwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmgJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDksIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDktMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExMTcsNyArMTExNyw3IEBAIHByaXZhdGU6CiAg
ICAgSGFzaFNldDxTdHJpbmc+IG1fY2FwdHVyZUdyb3VwTmFtZXM7CiAKICAgICAvLyBEZXJpdmVk
IGJ5IGVtcGlyaWNhbCB0ZXN0aW5nIG9mIGNvbXBpbGUgdGltZSBpbiBQQ1JFIGFuZCBXUkVDLgot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBNQVhfUEFUVEVSTl9TSVpFID0gMTAyNCAqIDEwMjQ7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBNQVhfUEFUVEVSTl9TSVpFID0gMTAyNCAq
IDEwMjQ7CiB9OwogCiAvKgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvZ2VuZXJh
dGVZYXJyQ2Fub25pY2FsaXplVW5pY29kZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9nZW5lcmF0ZVlhcnJDYW5vbmljYWxpemVVbmljb2RlCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9nZW5lcmF0ZVlhcnJDYW5vbmljYWxp
emVVbmljb2RlCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogIyEgL3Vzci9iaW4vZW52
IHB5dGhvbgogCi0jIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTYyLDcgKzE2Miw3IEBA
IGNsYXNzIENhbm9uaWNhbGl6ZToKICAgICAgICAgICAgIGZpbGUud3JpdGUoImNvbnN0IFVDaGFy
MzIgdW5pY29kZUNoYXJhY3RlclNldHtpbmRleDpkfVtdID0ge3sge2NoYXJhY3RlcnN9MCB9fTtc
biIuZm9ybWF0KGluZGV4PWksIGNoYXJhY3RlcnM9Y2hhcmFjdGVycykpCiAKICAgICAgICAgZmls
ZS53cml0ZSgiXG4iKQotICAgICAgICBmaWxlLndyaXRlKCJzdGF0aWMgY29uc3Qgc2l6ZV90IFVO
SUNPREVfQ0FOT05JQ0FMSVpBVElPTl9TRVRTID0ge3NldENvdW50OmR9O1xuIi5mb3JtYXQoc2V0
Q291bnQ9bGVuKGNoYXJhY3RlclNldHMpKSkKKyAgICAgICAgZmlsZS53cml0ZSgic3RhdGljIGNv
bnN0ZXhwciBzaXplX3QgVU5JQ09ERV9DQU5PTklDQUxJWkFUSU9OX1NFVFMgPSB7c2V0Q291bnQ6
ZH07XG4iLmZvcm1hdChzZXRDb3VudD1sZW4oY2hhcmFjdGVyU2V0cykpKQogICAgICAgICBmaWxl
LndyaXRlKCJjb25zdCBVQ2hhcjMyKiBjb25zdCB1bmljb2RlQ2hhcmFjdGVyU2V0SW5mb1tVTklD
T0RFX0NBTk9OSUNBTElaQVRJT05fU0VUU10gPSB7XG4iKQogCiAgICAgICAgIGZvciBpIGluIHJh
bmdlKGxlbihjaGFyYWN0ZXJTZXRzKSk6CkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw3OSBAQAorMjAxOS0w
OS0xNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGNvbnN0
ZXhwciBpbnN0ZWFkIG9mIGNvbnN0IGluIHN5bWJvbCBkZWZpbml0aW9ucyB0aGF0IGFyZSBvYnZp
b3VzbHkgY29uc3RleHByLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0F1dG9tYXRpY1Ro
cmVhZC5jcHA6CisgICAgICAgICogd3RmL0JpdFZlY3Rvci5oOgorICAgICAgICAqIHd0Zi9CaXRt
YXAuaDoKKyAgICAgICAgKiB3dGYvQmxvb21GaWx0ZXIuaDoKKyAgICAgICAgKiB3dGYvQnJpZ2Fu
ZC5oOgorICAgICAgICAqIHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oOgorICAgICAgICAqIHd0Zi9D
cm9zc1RocmVhZENvcGllci5oOgorICAgICAgICAqIHd0Zi9DdXJyZW50VGltZS5jcHA6CisgICAg
ICAgICogd3RmL0RhdGFMb2cuY3BwOgorICAgICAgICAqIHd0Zi9EYXRlTWF0aC5jcHA6CisgICAg
ICAgIChXVEY6OmRheXNGcm9tMTk3MFRvWWVhcik6CisgICAgICAgICogd3RmL0RlZmVycmFibGVS
ZWZDb3VudGVkLmg6CisgICAgICAgICogd3RmL0dldFB0ci5oOgorICAgICAgICAqIHd0Zi9IYXNo
RnVuY3Rpb25zLmg6CisgICAgICAgICogd3RmL0hhc2hNYXAuaDoKKyAgICAgICAgKiB3dGYvSGFz
aFRhYmxlLmg6CisgICAgICAgICogd3RmL0hhc2hUcmFpdHMuaDoKKyAgICAgICAgKiB3dGYvSlNP
TlZhbHVlcy5jcHA6CisgICAgICAgICogd3RmL0pTT05WYWx1ZXMuaDoKKyAgICAgICAgKiB3dGYv
TGlzdEhhc2hTZXQuaDoKKyAgICAgICAgKiB3dGYvTG9jay5oOgorICAgICAgICAqIHd0Zi9Mb2Nr
QWxnb3JpdGhtLmg6CisgICAgICAgICogd3RmL0xvY2tBbGdvcml0aG1JbmxpbmVzLmg6CisgICAg
ICAgIChXVEY6Okhvb2tzPjo6bG9ja1Nsb3cpOgorICAgICAgICAqIHd0Zi9Mb2dnZXIuaDoKKyAg
ICAgICAgKiB3dGYvTG9nZ2VySGVscGVyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlckhlbHBlcjo6
Y2hpbGRMb2dJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZC5jcHA6
CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3JQdHIuaDoKKyAgICAgICAgKiB3dGYvTW9ub3Rv
bmljVGltZS5oOgorICAgICAgICAqIHd0Zi9OYXR1cmFsTG9vcHMuaDoKKyAgICAgICAgKFdURjo6
TmF0dXJhbExvb3BzOjpOYXR1cmFsTG9vcHMpOgorICAgICAgICAqIHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg6CisgICAgICAgICogd3RmL1JBTVNpemUuY3BwOgorICAgICAgICAqIHd0Zi9SZWYuaDoK
KyAgICAgICAgKiB3dGYvUmVmUHRyLmg6CisgICAgICAgICogd3RmL1JldGFpblB0ci5oOgorICAg
ICAgICAqIHd0Zi9TY2hlZHVsZVBhaXIuaDoKKyAgICAgICAgKiB3dGYvU3RhY2tTaG90Lmg6Cisg
ICAgICAgICogd3RmL1N0ZExpYkV4dHJhcy5oOgorICAgICAgICAqIHd0Zi9UaW55UHRyU2V0Lmg6
CisgICAgICAgICogd3RmL1VSTC5jcHA6CisgICAgICAgICogd3RmL1VSTEhhc2guaDoKKyAgICAg
ICAgKiB3dGYvVVJMUGFyc2VyLmNwcDoKKyAgICAgICAgKFdURjo6VVJMUGFyc2VyOjpkZWZhdWx0
UG9ydEZvclByb3RvY29sKToKKyAgICAgICAgKiB3dGYvVmVjdG9yLmg6CisgICAgICAgICogd3Rm
L1ZlY3RvclRyYWl0cy5oOgorICAgICAgICAqIHd0Zi9XYWxsVGltZS5oOgorICAgICAgICAqIHd0
Zi9XZWFrSGFzaFNldC5oOgorICAgICAgICAqIHd0Zi9Xb3JkTG9jay5oOgorICAgICAgICAqIHd0
Zi9jb2NvYS9DUFVUaW1lQ29jb2EuY3BwOgorICAgICAgICAqIHd0Zi9jb2NvYS9NZW1vcnlQcmVz
c3VyZUhhbmRsZXJDb2NvYS5tbToKKyAgICAgICAgKiB3dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVu
dERlY29kZXIuaDoKKyAgICAgICAgKiB3dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudEVuY29kZXIu
aDoKKyAgICAgICAgKiB3dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oOgorICAgICAgICAqIHd0Zi90
ZXh0L0NTdHJpbmcuaDoKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcDoKKyAg
ICAgICAgKFdURjo6ZXhwYW5kZWRDYXBhY2l0eSk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5n
SGFzaC5oOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuaDoKKyAgICAgICAgKiB3dGYv
dGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg6CisgICAgICAgIChXVEY6OnRvSW50ZWdy
YWxUeXBlKToKKyAgICAgICAgKiB3dGYvdGV4dC9TeW1ib2xSZWdpc3RyeS5oOgorICAgICAgICAq
IHd0Zi90ZXh0L1RleHRTdHJlYW0uY3BwOgorICAgICAgICAoV1RGOjpoYXNGcmFjdGlvbnMpOgor
ICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmluZy5oOgorICAgICAgICAqIHd0Zi90ZXh0L2NvY29h
L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VDb2NvYS5jcHA6CisKIDIwMTktMDktMTYgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1v
dmUgImdvcGhlciIgZnJvbSBsaXN0IG9mIHNwZWNpYWwgc2NoZW1lcyBpbiBVUkxQYXJzZXIKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL0Fzc2VydGlvbnMuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0
Zi9Bc3NlcnRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc5LDggKzI3OSw4IEBAIHB1Ymxp
YzoKIAogdm9pZCBXVEZSZXBvcnRCYWNrdHJhY2UoKQogewotICAgIHN0YXRpYyBjb25zdCBpbnQg
ZnJhbWVzVG9TaG93ID0gMzE7Ci0gICAgc3RhdGljIGNvbnN0IGludCBmcmFtZXNUb1NraXAgPSAy
OworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IGZyYW1lc1RvU2hvdyA9IDMxOworICAgIHN0YXRp
YyBjb25zdGV4cHIgaW50IGZyYW1lc1RvU2tpcCA9IDI7CiAgICAgdm9pZCogc2FtcGxlc1tmcmFt
ZXNUb1Nob3cgKyBmcmFtZXNUb1NraXBdOwogICAgIGludCBmcmFtZXMgPSBmcmFtZXNUb1Nob3cg
KyBmcmFtZXNUb1NraXA7CiAKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAkocmV2
aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLXN0YXRp
YyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CiAKIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkKIHsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0JpdFZlY3Rv
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0JpdFZlY3Rvci5oCShyZXZpc2lvbiAy
NDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9CaXRWZWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTQsIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC00ODksNyArNDg5LDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBCaXRWZWN0b3JIYXNoIHsK
ICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBCaXRWZWN0b3ImIHZlY3RvcikgeyByZXR1
cm4gdmVjdG9yLmhhc2goKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IEJpdFZlY3Rv
ciYgYSwgY29uc3QgQml0VmVjdG9yJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMg
Y29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNl
OwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IERlZmF1bHRIYXNoOwpJbmRleDog
U291cmNlL1dURi93dGYvQml0bWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQml0
bWFwLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL0JpdG1hcC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDEw
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YwpAQCAtMTIwLDE1ICsxMjAsMTUgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGhhc2goKSBjb25z
dDsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgd29yZFNpemUgPSBzaXpl
b2YoV29yZFR5cGUpICogODsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgd29yZHMgPSAoYml0
bWFwU2l6ZSArIHdvcmRTaXplIC0gMSkgLyB3b3JkU2l6ZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIHdvcmRTaXplID0gc2l6ZW9mKFdvcmRUeXBlKSAqIDg7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCB3b3JkcyA9IChiaXRtYXBTaXplICsgd29yZFNpemUgLSAxKSAvIHdv
cmRTaXplOwogCiAgICAgLy8gdGhlIGxpdGVyYWwgJzEnIGlzIG9mIHR5cGUgc2lnbmVkIGludC4g
IFdlIHdhbnQgdG8gdXNlIGFuIHVuc2lnbmVkCiAgICAgLy8gdmVyc2lvbiBvZiB0aGUgY29ycmVj
dCBzaXplIHdoZW4gZG9pbmcgdGhlIGNhbGN1bGF0aW9ucyBiZWNhdXNlIGlmCiAgICAgLy8gV29y
ZFR5cGUgaXMgbGFyZ2VyIHRoYW4gaW50LCAnMSA8PCAzMScgd2lsbCBmaXJzdCBiZSBzaWduIGV4
dGVuZGVkCiAgICAgLy8gYW5kIHRoZW4gY2FzdGVkIHRvIHVuc2lnbmVkLCBtZWFuaW5nIHRoYXQg
c2V0KDMxKSB3aGVuIFdvcmRUeXBlIGlzCiAgICAgLy8gYSA2NCBiaXQgdW5zaWduZWQgaW50IHdv
dWxkIGdpdmUgMHhmZmZmODAwMAotICAgIHN0YXRpYyBjb25zdCBXb3JkVHlwZSBvbmUgPSAxOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgV29yZFR5cGUgb25lID0gMTsKIAogICAgIHN0ZDo6YXJyYXk8
V29yZFR5cGUsIHdvcmRzPiBiaXRzOwogfTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0Jsb29tRmls
dGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQmxvb21GaWx0ZXIuaAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvQmxvb21GaWx0ZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zOCw3ICszOCw3IEBAIHRlbXBsYXRlIDx1bnNpZ25lZCBrZXlCaXRzPgogY2xhc3Mg
Qmxvb21GaWx0ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IHN0YXRpYyBjb25zdCBzaXplX3QgdGFibGVTaXplID0gMSA8PCBrZXlCaXRzOworICAgIHN0YXRp
YyBjb25zdGV4cHIgc2l6ZV90IHRhYmxlU2l6ZSA9IDEgPDwga2V5Qml0czsKIAogICAgIEJsb29t
RmlsdGVyKCk7CiAKQEAgLTYxLDggKzYxLDggQEAgcHVibGljOgogICAgIGJvb2wgbWF5Q29udGFp
bihjb25zdCBTdHJpbmcmIHN0cmluZykgY29uc3QgeyByZXR1cm4gbWF5Q29udGFpbihzdHJpbmcu
aW1wbCgpLT5oYXNoKCkpOyB9CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGJpdHNQZXJQb3NpdGlvbiA9IDggKiBzaXplb2YodW5zaWduZWQpOwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBrZXlNYXNrID0gKDEgPDwga2V5Qml0cykgLSAxOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgYml0c1BlclBvc2l0aW9uID0gOCAqIHNpemVvZih1bnNpZ25lZCk7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBrZXlNYXNrID0gKDEgPDwga2V5Qml0cykgLSAx
OwogICAgIHN0YXRpYyB1bnNpZ25lZCBhcnJheUluZGV4KHVuc2lnbmVkIGtleSkgeyByZXR1cm4g
a2V5IC8gYml0c1BlclBvc2l0aW9uOyB9CiAgICAgc3RhdGljIHVuc2lnbmVkIGJpdE1hc2sodW5z
aWduZWQga2V5KSB7IHJldHVybiAxIDw8IChrZXkgJSBiaXRzUGVyUG9zaXRpb24pOyB9CiAgICAg
dGVtcGxhdGUgPHNpemVfdCBoYXNoU2l6ZT4gc3RhdGljIHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5z
aWduZWQ+IGtleXNGcm9tSGFzaChjb25zdCBzdGQ6OmFycmF5PHVpbnQ4X3QsIGhhc2hTaXplPiYp
OwpAQCAtMTU4LDcgKzE1OCw3IEBAIHRlbXBsYXRlIDx1bnNpZ25lZCBrZXlCaXRzPgogY2xhc3Mg
Q291bnRpbmdCbG9vbUZpbHRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCB0YWJsZVNpemUgPSAxIDw8IGtleUJpdHM7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgdGFibGVTaXplID0gMSA8PCBrZXlCaXRzOwogICAg
IHN0YXRpYyB1bnNpZ25lZCBtYXhpbXVtQ291bnQoKSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVpbnQ4X3Q+OjptYXgoKTsgfQogICAgIAogICAgIENvdW50aW5nQmxvb21GaWx0ZXIoKTsK
QEAgLTE4OSw3ICsxODksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQga2V5TWFzayA9ICgxIDw8IGtleUJpdHMpIC0gMTsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIGtleU1hc2sgPSAoMSA8PCBrZXlCaXRzKSAtIDE7CiAKICAg
ICB1aW50OF90JiBmaXJzdEJ1Y2tldCh1bnNpZ25lZCBoYXNoKSB7IHJldHVybiBtX2J1Y2tldHNb
aGFzaCAmIGtleU1hc2tdOyB9CiAgICAgdWludDhfdCYgc2Vjb25kQnVja2V0KHVuc2lnbmVkIGhh
c2gpIHsgcmV0dXJuIG1fYnVja2V0c1soaGFzaCA+PiAxNikgJiBrZXlNYXNrXTsgfQpJbmRleDog
U291cmNlL1dURi93dGYvQnJpZ2FuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0Jy
aWdhbmQuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvQnJpZ2FuZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yODIsNyArMjgyLDcgQEAgbmFtZXNwYWNlIGRldGFpbAogICAgICAg
ICBzdGF0aWMgYXV0byB0ZXN0KFAgKiBwKSAtPiBkZWNsdHlwZShDOjphdCgqcCksIHN0ZDo6dHJ1
ZV90eXBlKCkpOwogICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUsIHR5cGVuYW1lPgogICAgICAg
ICBzdGF0aWMgc3RkOjpmYWxzZV90eXBlIHRlc3QoLi4uKTsKLSAgICAgICAgc3RhdGljIGNvbnN0
IGJvb2wgdmFsdWUgPSBzdGQ6OmlzX3NhbWU8c3RkOjp0cnVlX3R5cGUsIGRlY2x0eXBlKHRlc3Q8
VCwgZHVtbXk+KG51bGxwdHIpKT46OnZhbHVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgdmFsdWUgPSBzdGQ6OmlzX3NhbWU8c3RkOjp0cnVlX3R5cGUsIGRlY2x0eXBlKHRlc3Q8VCwg
ZHVtbXk+KG51bGxwdHIpKT46OnZhbHVlOwogICAgIH07CiAgICAgdGVtcGxhdGUgPGNsYXNzIEws
IHR5cGVuYW1lIEluZGV4LCBib29sPgogICAgIHN0cnVjdCBhdF9kaXNwYXRjaApAQCAtMjI4Niw3
ICsyMjg2LDcgQEAgbmFtZXNwYWNlIGRldGFpbAogICAgICAgICBzdGF0aWMgYXV0byB0ZXN0KFAg
KiBwKSAtPiBkZWNsdHlwZShDOjplcmFzZSh0eXBlXzxQPnt9KSwgc3RkOjp0cnVlX3R5cGUoKSk7
CiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSwgdHlwZW5hbWU+CiAgICAgICAgIHN0YXRpYyBz
dGQ6OmZhbHNlX3R5cGUgdGVzdCguLi4pOwotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1
ZSA9IHN0ZDo6aXNfc2FtZTxzdGQ6OnRydWVfdHlwZSwgZGVjbHR5cGUodGVzdDxULCBkdW1teT4o
bnVsbHB0cikpPjo6dmFsdWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2YWx1ZSA9
IHN0ZDo6aXNfc2FtZTxzdGQ6OnRydWVfdHlwZSwgZGVjbHR5cGUodGVzdDxULCBkdW1teT4obnVs
bHB0cikpPjo6dmFsdWU7CiAgICAgfTsKICAgICB0ZW1wbGF0ZTxjbGFzcyBMLCBjbGFzcyBJLCBi
b29sPgogICAgIHN0cnVjdCBlcmFzZV9kaXNwYXRjaApJbmRleDogU291cmNlL1dURi93dGYvQ2hl
Y2tlZEFyaXRobWV0aWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9DaGVja2VkQXJp
dGhtZXRpYy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9DaGVja2VkQXJp
dGhtZXRpYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIsMjIgKzI0MiwyMiBAQCB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVGFyZ2V0LCB0eXBlbmFtZSBTb3VyCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBz
dHJ1Y3QgUmVtb3ZlQ2hlY2tlZCB7CiAgICAgdHlwZWRlZiBUIENsZWFuVHlwZTsKLSAgICBzdGF0
aWMgY29uc3QgQ2xlYW5UeXBlIERlZmF1bHRWYWx1ZSA9IDA7ICAgIAorICAgIHN0YXRpYyBjb25z
dGV4cHIgQ2xlYW5UeXBlIERlZmF1bHRWYWx1ZSA9IDA7CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4gc3RydWN0IFJlbW92ZUNoZWNrZWQ8Q2hlY2tlZDxULCBDb25kaXRpb25hbENyYXNoT25P
dmVyZmxvdz4+IHsKICAgICB1c2luZyBDbGVhblR5cGUgPSB0eXBlbmFtZSBSZW1vdmVDaGVja2Vk
PFQ+OjpDbGVhblR5cGU7Ci0gICAgc3RhdGljIGNvbnN0IENsZWFuVHlwZSBEZWZhdWx0VmFsdWUg
PSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgQ2xlYW5UeXBlIERlZmF1bHRWYWx1ZSA9IDA7CiB9
OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IFJlbW92ZUNoZWNrZWQ8Q2hlY2tlZDxU
LCBDcmFzaE9uT3ZlcmZsb3c+PiB7CiAgICAgdHlwZWRlZiB0eXBlbmFtZSBSZW1vdmVDaGVja2Vk
PFQ+OjpDbGVhblR5cGUgQ2xlYW5UeXBlOwotICAgIHN0YXRpYyBjb25zdCBDbGVhblR5cGUgRGVm
YXVsdFZhbHVlID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIENsZWFuVHlwZSBEZWZhdWx0VmFs
dWUgPSAwOwogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBSZW1vdmVDaGVja2Vk
PENoZWNrZWQ8VCwgUmVjb3JkT3ZlcmZsb3c+PiB7CiAgICAgdHlwZWRlZiB0eXBlbmFtZSBSZW1v
dmVDaGVja2VkPFQ+OjpDbGVhblR5cGUgQ2xlYW5UeXBlOwotICAgIHN0YXRpYyBjb25zdCBDbGVh
blR5cGUgRGVmYXVsdFZhbHVlID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIENsZWFuVHlwZSBE
ZWZhdWx0VmFsdWUgPSAwOwogfTsKIAogLy8gVGhlIFJlc3VsdEJhc2UgYW5kIFNpZ25lZG5lc3NT
ZWxlY3RvciBhcmUgdXNlZCB0byB3b3JrYXJvdW5kIHR5cGVvZiBub3QgYmVpbmcKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dU
Ri93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTU0
LDExICs1NCwxMSBAQCBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlSGVscGVyIHsKICAgICB9
OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElzRW51bU9yQ29udmVydGlibGVU
b0ludGVnZXIgewotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHN0ZDo6aXNfaW50
ZWdyYWw8VD46OnZhbHVlIHx8IHN0ZDo6aXNfZW51bTxUPjo6dmFsdWUgfHwgc3RkOjppc19jb252
ZXJ0aWJsZTxULCBsb25nIGRvdWJsZT46OnZhbHVlOworICAgICAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgdmFsdWUgPSBzdGQ6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSB8fCBzdGQ6OmlzX2VudW08
VD46OnZhbHVlIHx8IHN0ZDo6aXNfY29udmVydGlibGU8VCwgbG9uZyBkb3VibGU+Ojp2YWx1ZTsK
ICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElzVGhyZWFkU2FmZVJl
ZkNvdW50ZWRQb2ludGVyIHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBzdGQ6
OmlzX2NvbnZlcnRpYmxlPHR5cGVuYW1lIFJlbW92ZVBvaW50ZXI8VD46OlR5cGUqLCBUaHJlYWRT
YWZlUmVmQ291bnRlZDx0eXBlbmFtZSBSZW1vdmVQb2ludGVyPFQ+OjpUeXBlPio+Ojp2YWx1ZTsK
KyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZhbHVlID0gc3RkOjppc19jb252ZXJ0aWJs
ZTx0eXBlbmFtZSBSZW1vdmVQb2ludGVyPFQ+OjpUeXBlKiwgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
dHlwZW5hbWUgUmVtb3ZlUG9pbnRlcjxUPjo6VHlwZT4qPjo6dmFsdWU7CiAgICAgfTsKIH07CiAK
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9DdXJyZW50VGltZS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9X
VEYvd3RmL0N1cnJlbnRUaW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgogICog
Q29weXJpZ2h0IChDKSAyMDA4IENhbWVyb24gWndhcmljaCA8Y3d6d2FyaWNoQHV3YXRlcmxvby5j
YT4KQEAgLTY4LDggKzY4LDggQEAgbmFtZXNwYWNlIFdURiB7CiAjaWYgT1MoV0lORE9XUykKIAog
Ly8gTnVtYmVyIG9mIDEwMCBuYW5vc2Vjb25kIGJldHdlZW4gSmFudWFyeSAxLCAxNjAxIGFuZCBK
YW51YXJ5IDEsIDE5NzAuCi1zdGF0aWMgY29uc3QgVUxPTkdMT05HIGVwb2NoQmlhcyA9IDExNjQ0
NDczNjAwMDAwMDAwMFVMTDsKLXN0YXRpYyBjb25zdCBkb3VibGUgaHVuZHJlZHNPZk5hbm9zZWNv
bmRzUGVyTWlsbGlzZWNvbmQgPSAxMDAwMDsKK3N0YXRpYyBjb25zdGV4cHIgVUxPTkdMT05HIGVw
b2NoQmlhcyA9IDExNjQ0NDczNjAwMDAwMDAwMFVMTDsKK3N0YXRpYyBjb25zdGV4cHIgZG91Ymxl
IGh1bmRyZWRzT2ZOYW5vc2Vjb25kc1Blck1pbGxpc2Vjb25kID0gMTAwMDA7CiAKIHN0YXRpYyBk
b3VibGUgbG93UmVzVVRDVGltZSgpCiB7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9EYXRhTG9nLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9EYXRhTG9nLmNwcAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL1dURi93dGYvRGF0YUxvZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTIsNyAr
NTIsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIGNvbnN0IHNpemVfdCBtYXhQYXRo
TGVuZ3RoID0gMTAyNDsKK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1heFBhdGhMZW5ndGggPSAx
MDI0OwogCiBzdGF0aWMgUHJpbnRTdHJlYW0qIHNfZmlsZTsKIHN0YXRpYyB1aW50NjRfdCBzX2Zp
bGVEYXRhWyhzaXplb2YoRmlsZVByaW50U3RyZWFtKSArIDcpIC8gOF07CkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9EYXRlTWF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvRGF0ZU1h
dGguY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAxOTk5
LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAw
Ni0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgJnll
dCwgTExDLiAobmF0ZUBhbmR5ZXQubmV0KQpAQCAtMTA5LDExICsxMDksMTEgQEAgdGVtcGxhdGU8
dW5zaWduZWQgbGVuZ3RoPiBpbmxpbmUgYm9vbCBzdAogCiAvKiBDb25zdGFudHMgKi8KIAotc3Rh
dGljIGNvbnN0IGRvdWJsZSBtYXhVbml4VGltZSA9IDIxNDU4NTkyMDAuMDsgLy8gMTIvMzEvMjAz
Nworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbWF4VW5peFRpbWUgPSAyMTQ1ODU5MjAwLjA7IC8v
IDEyLzMxLzIwMzcKIC8vIEVDTUFTY3JpcHQgYXNrcyBub3QgdG8gc3VwcG9ydCBmb3IgYSBkYXRl
IG9mIHdoaWNoIHRvdGFsCiAvLyBtaWxsaXNlY29uZCB2YWx1ZSBpcyBsYXJnZXIgdGhhbiB0aGUg
Zm9sbG93aW5nIHZhbHVlLgogLy8gU2VlIDE1LjkuMS4xNCBvZiBFQ01BLTI2MiA1dGggZWRpdGlv
bi4KLXN0YXRpYyBjb25zdCBkb3VibGUgbWF4RUNNQVNjcmlwdFRpbWUgPSA4LjY0RTE1Oworc3Rh
dGljIGNvbnN0ZXhwciBkb3VibGUgbWF4RUNNQVNjcmlwdFRpbWUgPSA4LjY0RTE1OwogCiAvLyBE
YXkgb2YgeWVhciBmb3IgdGhlIGZpcnN0IGRheSBvZiBlYWNoIG1vbnRoLCB3aGVyZSBpbmRleCAw
IGlzIEphbnVhcnksIGFuZCBkYXkgMCBpcyBKYW51YXJ5IDEuCiAvLyBGaXJzdCBmb3Igbm9uLWxl
YXAgeWVhcnMsIHRoZW4gZm9yIGxlYXAgeWVhcnMuCkBAIC0xNTYsOSArMTU2LDkgQEAgc3RhdGlj
IGlubGluZSBkb3VibGUgZGF5c0Zyb20xOTcwVG9ZZWFyKAogICAgIC8vIEhvd2V2ZXIsIGV2ZXJ5
IGh1bmRyZWR0aCB5ZWFyIGlzIG5vdCBhIGxlYXAgeWVhci4gIDE5MDAgYW5kIDIxMDAgYXJlIG5v
dCBsZWFwIHllYXJzLgogICAgIC8vIEV2ZXJ5IGZvdXIgaHVuZHJlZCB5ZWFycywgdGhlcmUncyBh
IGxlYXAgeWVhciBhZnRlciBhbGwuICAyMDAwIGFuZCAyNDAwIGFyZSBsZWFwIHllYXJzLgogCi0g
ICAgc3RhdGljIGNvbnN0IGludCBsZWFwRGF5c0JlZm9yZTE5NzFCeTRSdWxlID0gMTk3MCAvIDQ7
Ci0gICAgc3RhdGljIGNvbnN0IGludCBleGNsdWRlZExlYXBEYXlzQmVmb3JlMTk3MUJ5MTAwUnVs
ZSA9IDE5NzAgLyAxMDA7Ci0gICAgc3RhdGljIGNvbnN0IGludCBsZWFwRGF5c0JlZm9yZTE5NzFC
eTQwMFJ1bGUgPSAxOTcwIC8gNDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IGxlYXBEYXlz
QmVmb3JlMTk3MUJ5NFJ1bGUgPSAxOTcwIC8gNDsKKyAgICBzdGF0aWMgY29uc3RleHByIGludCBl
eGNsdWRlZExlYXBEYXlzQmVmb3JlMTk3MUJ5MTAwUnVsZSA9IDE5NzAgLyAxMDA7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBpbnQgbGVhcERheXNCZWZvcmUxOTcxQnk0MDBSdWxlID0gMTk3MCAvIDQw
MDsKIAogICAgIGNvbnN0IGRvdWJsZSB5ZWFyTWludXNPbmUgPSB5ZWFyIC0gMTsKICAgICBjb25z
dCBkb3VibGUgeWVhcnNUb0FkZEJ5NFJ1bGUgPSBmbG9vcih5ZWFyTWludXNPbmUgLyA0LjApIC0g
bGVhcERheXNCZWZvcmUxOTcxQnk0UnVsZTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0RlZmVycmFi
bGVSZWZDb3VudGVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvRGVmZXJyYWJsZVJl
ZkNvdW50ZWQuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvRGVmZXJyYWJs
ZVJlZkNvdW50ZWQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw4ICszOCw4IEBAIG5hbWVzcGFjZSBXVEYg
ewogLy8gc29tZXRpbWVzIGV2ZW4gZm9yIHNvbWUgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5Lgog
CiBjbGFzcyBEZWZlcnJhYmxlUmVmQ291bnRlZEJhc2UgewotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBkZWZlcnJlZEZsYWcgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBub3JtYWxJ
bmNyZW1lbnQgPSAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZGVmZXJyZWRGbGFn
ID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG5vcm1hbEluY3JlbWVudCA9IDI7
CiAKIHB1YmxpYzoKICAgICB2b2lkIHJlZigpIGNvbnN0CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9H
ZXRQdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9HZXRQdHIuaAkocmV2aXNpb24g
MjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvR2V0UHRyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBJbmMuCisgKiAgQ29w
eXJpZ2h0IChDKSAyMDA2LTIwMTkgQXBwbGUgSW5jLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTMwLDcgKzMwLDcgQEAgZW51bSBIYXNoVGFibGVFbXB0eVZhbHVlVHlwZSB7IEhhc2hUYWJsZQog
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBUKiBnZXRQdHIoVCogcCkgeyByZXR1cm4gcDsg
fQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IElzU21hcnRQdHIgewotICAgIHN0YXRp
YyBjb25zdCBib29sIHZhbHVlID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZh
bHVlID0gZmFsc2U7CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgYm9vbCBpc1NtYXJ0UHRy
PgpAQCAtNjcsNyArNjcsNyBAQCBpbmxpbmUgdHlwZW5hbWUgR2V0UHRySGVscGVyPFQ+OjpQdHJU
eXBlCiAvLyBFeHBsaWNpdCBzcGVjaWFsaXphdGlvbiBmb3IgQysrIHN0YW5kYXJkIGxpYnJhcnkg
dHlwZXMuCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBEZWxldGVyPiBzdHJ1Y3Qg
SXNTbWFydFB0cjxzdGQ6OnVuaXF1ZV9wdHI8VCwgRGVsZXRlcj4+IHsKLSAgICBzdGF0aWMgY29u
c3QgYm9vbCB2YWx1ZSA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZhbHVlID0g
dHJ1ZTsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBEZWxldGVyPgpJbmRl
eDogU291cmNlL1dURi93dGYvSGFzaEZ1bmN0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL0hhc2hGdW5jdGlvbnMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93
dGYvSGFzaEZ1bmN0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEwMiw3ICsxMDIsNyBAQCBuYW1lc3Bh
Y2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSW50SGFzaCB7CiAgICAg
ICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKFQga2V5KSB7IHJldHVybiBpbnRIYXNoKHN0YXRpY19j
YXN0PHR5cGVuYW1lIEludFR5cGVzPHNpemVvZihUKT46OlVuc2lnbmVkVHlwZT4oa2V5KSk7IH0K
ICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoVCBhLCBUIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQot
ICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9
IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0
eU9yRGVsZXRlZCA9IHRydWU7CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
cnVjdCBGbG9hdEhhc2ggewpAQCAtMTE1LDcgKzExNSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
ICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEJpdHM+KGEpID09IGJpdHdp
c2VfY2FzdDxCaXRzPihiKTsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBz
YWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiAgICAgfTsK
IAogICAgIC8vIHBvaW50ZXIgaWRlbnRpdHkgaGFzaCBmdW5jdGlvbgpAQCAtMTI5LDcgKzEyOSw3
IEBAIG5hbWVzcGFjZSBXVEYgewogCiAgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKFB0clR5
cGUga2V5KSB7IHJldHVybiBJbnRIYXNoPHVpbnRwdHJfdD46Omhhc2gocmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KGtleSkpOyB9CiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKFB0clR5cGUg
YSwgUHRyVHlwZSBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICAgICAgc3RhdGljIGNvbnN0IGJv
b2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgICAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogICAg
IH07CiAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KQEAgLTEzOCw3ICsxMzgsNyBAQCBuYW1l
c3BhY2UgV1RGIHsKIAogICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChQdHJUeXBlIGtleSkg
eyByZXR1cm4gSW50SGFzaDx1aW50cHRyX3Q+OjpoYXNoKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90PihrZXkpKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChQdHJUeXBlIGEsIFB0clR5
cGUgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVU
b0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIAogICAgICAgICBz
dGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBUJiBrZXkpIHsgcmV0dXJuIGhhc2goZ2V0UHRyKGtl
eSkpOyB9CiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFQmIGEsIGNvbnN0IFQmIGIp
IHsgcmV0dXJuIGdldFB0cihhKSA9PSBnZXRQdHIoYik7IH0KQEAgLTE1MCw3ICsxNTAsNyBAQCBu
YW1lc3BhY2UgV1RGIHsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0
IFB0ckhhc2g8UmVmPFA+PiA6IFB0ckhhc2hCYXNlPFJlZjxQPiwgSXNTbWFydFB0cjxSZWY8UD4+
Ojp2YWx1ZT4gewotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0
eU9yRGVsZXRlZCA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRv
Q29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCiAgICAgLy8gZGVmYXVs
dCBoYXNoIGZ1bmN0aW9uIGZvciBlYWNoIHR5cGUKQEAgLTE2NiwxMyArMTY2LDEzIEBAIG5hbWVz
cGFjZSBXVEYgewogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gRGVmYXVsdEhhc2g8VD46
Okhhc2g6OmVxdWFsKGEuZmlyc3QsIGIuZmlyc3QpICYmIERlZmF1bHRIYXNoPFU+OjpIYXNoOjpl
cXVhbChhLnNlY29uZCwgYi5zZWNvbmQpOwogICAgICAgICB9Ci0gICAgICAgIHN0YXRpYyBjb25z
dCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gRGVmYXVsdEhhc2g8VD46Okhh
c2g6OnNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkICYmIERlZmF1bHRIYXNoPFU+OjpIYXNo
OjpzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gRGVmYXVsdEhhc2g8VD46Okhh
c2g6OnNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkICYmIERlZmF1bHRIYXNoPFU+OjpIYXNo
OjpzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZDsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEludFBhaXJIYXNoIHsKICAgICAgICAgc3Rh
dGljIHVuc2lnbmVkIGhhc2goY29uc3Qgc3RkOjpwYWlyPFQsIFU+JiBwKSB7IHJldHVybiBwYWly
SW50SGFzaChwLmZpcnN0LCBwLnNlY29uZCk7IH0KICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwo
Y29uc3Qgc3RkOjpwYWlyPFQsIFU+JiBhLCBjb25zdCBzdGQ6OnBhaXI8VCwgVT4mIGIpIHsgcmV0
dXJuIFBhaXJIYXNoPFQsIFQ+OjplcXVhbChhLCBiKTsgfQotICAgICAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IFBhaXJIYXNoPFQsIFU+OjpzYWZl
VG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gUGFpckhhc2g8VCwgVT46OnNhZmVUb0Nv
bXBhcmVUb0VtcHR5T3JEZWxldGVkOwogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4u
LiBUeXBlcz4KQEAgLTIxMSw3ICsyMTEsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIGFsbFRydWUoQm9vbFR5cGUgdmFsdWUpIHsgcmV0dXJuIHZhbHVl
OyB9CiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJvb2xUeXBlLCB0eXBlbmFtZS4uLiBCb29s
VHlwZXM+CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBhbGxUcnVlKEJvb2xUeXBlIHZh
bHVlLCBCb29sVHlwZXMuLi4gdmFsdWVzKSB7IHJldHVybiB2YWx1ZSAmJiBhbGxUcnVlKHZhbHVl
cy4uLik7IH0KLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlP
ckRlbGV0ZWQgPSBhbGxUcnVlKERlZmF1bHRIYXNoPFR5cGVzPjo6SGFzaDo6c2FmZVRvQ29tcGFy
ZVRvRW1wdHlPckRlbGV0ZWQuLi4pOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2Fm
ZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBhbGxUcnVlKERlZmF1bHRIYXNoPFR5cGVzPjo6
SGFzaDo6c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQuLi4pOwogICAgIH07CiAKICAgICAv
LyBtYWtlIEludEhhc2ggdGhlIGRlZmF1bHQgaGFzaCBmdW5jdGlvbiBmb3IgbWFueSBpbnRlZ2Vy
IHR5cGVzCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi93dGYvSGFzaE1hcC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0
Zi9IYXNoTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA1LTIwMDgsIDIwMTEsIDIwMTMsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zOSw3ICszOSw3IEBAIHByaXZh
dGU6CiAgICAgdXNpbmcgTWFwcGVkVHJhaXRzID0gTWFwcGVkVHJhaXRzQXJnOwogCiAgICAgc3Ry
dWN0IEtleVZhbHVlUGFpclRyYWl0cyA6IEtleVZhbHVlUGFpckhhc2hUcmFpdHM8S2V5VHJhaXRz
LCBNYXBwZWRUcmFpdHM+IHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgaGFzSXNFbXB0eVZh
bHVlRnVuY3Rpb24gPSB0cnVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaGFzSXNF
bXB0eVZhbHVlRnVuY3Rpb24gPSB0cnVlOwogICAgICAgICBzdGF0aWMgYm9vbCBpc0VtcHR5VmFs
dWUoY29uc3QgdHlwZW5hbWUgS2V5VmFsdWVQYWlySGFzaFRyYWl0czxLZXlUcmFpdHMsIE1hcHBl
ZFRyYWl0cz46OlRyYWl0VHlwZSYgdmFsdWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVy
biBpc0hhc2hUcmFpdHNFbXB0eVZhbHVlPEtleVRyYWl0cz4odmFsdWUua2V5KTsKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0hh
c2hUYWJsZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTEsIDIwMTIsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IERhdmlkIExldmluIDxsZXZp
bkBjaHJvbWl1bS5vcmc+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTE4LDggKzUxOCw4IEBAIG5hbWVzcGFj
ZSBXVEYgewogICAgICAgICBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlSXRlcmF0b3JzKCkgeyB9CiAj
ZW5kaWYKIAotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbV9tYXhMb2FkID0gMjsKLSAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1fbWluTG9hZCA9IDY7CisgICAgICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgbV9tYXhMb2FkID0gMjsKKyAgICAgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBtX21pbkxvYWQgPSA2OwogCiAgICAgICAgIFZhbHVlVHlwZSogbV90YWJs
ZTsKICAgICAgICAgdW5zaWduZWQgbV90YWJsZVNpemU7CkBAIC01NDUsMTYgKzU0NSwxNiBAQCBu
YW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBzaXplPiBzdHJ1Y3QgT25laWZ5
TG93Qml0czsKICAgICB0ZW1wbGF0ZTw+CiAgICAgc3RydWN0IE9uZWlmeUxvd0JpdHM8MD4gewot
ICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSAwOworICAgICAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIHZhbHVlID0gMDsKICAgICB9OwogICAgIHRlbXBsYXRlPHVuc2ln
bmVkIG51bWJlcj4KICAgICBzdHJ1Y3QgT25laWZ5TG93Qml0cyB7Ci0gICAgICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCB2YWx1ZSA9IG51bWJlciB8IE9uZWlmeUxvd0JpdHM8KG51bWJlciA+PiAx
KT46OnZhbHVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZhbHVlID0gbnVt
YmVyIHwgT25laWZ5TG93Qml0czwobnVtYmVyID4+IDEpPjo6dmFsdWU7CiAgICAgfTsKICAgICAv
LyBDb21wdXRlIHRoZSBmaXJzdCBwb3dlciBvZiB0d28gaW50ZWdlciB0aGF0IGlzIGFuIHVwcGVy
IGJvdW5kIG9mIHRoZSBwYXJhbWV0ZXIgJ251bWJlcicuCiAgICAgdGVtcGxhdGU8dW5zaWduZWQg
bnVtYmVyPgogICAgIHN0cnVjdCBVcHBlclBvd2VyT2ZUd29Cb3VuZCB7Ci0gICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IChPbmVpZnlMb3dCaXRzPG51bWJlciAtIDE+Ojp2YWx1
ZSArIDEpICogMjsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB2YWx1ZSA9IChP
bmVpZnlMb3dCaXRzPG51bWJlciAtIDE+Ojp2YWx1ZSArIDEpICogMjsKICAgICB9OwogCiAgICAg
Ly8gQmVjYXVzZSBwb3dlciBvZiB0d28gbnVtYmVycyBhcmUgdGhlIGxpbWl0IG9mIG1heExvYWQs
IHRoZWlyIGNhcGFjaXR5IGlzIHR3aWNlIHRoZQpAQCAtNTYyLDE4ICs1NjIsMTggQEAgbmFtZXNw
YWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dW5zaWduZWQgc2l6ZSwgYm9vbCBpc1Bvd2VyT2ZUd28+
IHN0cnVjdCBIYXNoVGFibGVDYXBhY2l0eUZvclNpemVTcGxpdHRlcjsKICAgICB0ZW1wbGF0ZTx1
bnNpZ25lZCBzaXplPgogICAgIHN0cnVjdCBIYXNoVGFibGVDYXBhY2l0eUZvclNpemVTcGxpdHRl
cjxzaXplLCB0cnVlPiB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IHNp
emUgKiA0OworICAgICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZhbHVlID0gc2l6ZSAq
IDQ7CiAgICAgfTsKICAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBzaXplPgogICAgIHN0cnVjdCBIYXNo
VGFibGVDYXBhY2l0eUZvclNpemVTcGxpdHRlcjxzaXplLCBmYWxzZT4gewotICAgICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSBVcHBlclBvd2VyT2ZUd29Cb3VuZDxzaXplPjo6dmFs
dWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgdmFsdWUgPSBVcHBlclBvd2Vy
T2ZUd29Cb3VuZDxzaXplPjo6dmFsdWU7CiAgICAgfTsKIAogICAgIC8vIEhhc2hUYWJsZUNhcGFj
aXR5Rm9yU2l6ZSBjb21wdXRlcyB0aGUgdXBwZXIgcG93ZXIgb2YgdHdvIGNhcGFjaXR5IHRvIGhv
bGQgdGhlIHNpemUgcGFyYW1ldGVyLgogICAgIC8vIFRoaXMgaXMgZG9uZSBhdCBjb21waWxlIHRp
bWUgdG8gaW5pdGlhbGl6ZSB0aGUgSGFzaFRyYWl0cy4KICAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBz
aXplPgogICAgIHN0cnVjdCBIYXNoVGFibGVDYXBhY2l0eUZvclNpemUgewotICAgICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSBIYXNoVGFibGVDYXBhY2l0eUZvclNpemVTcGxpdHRl
cjxzaXplLCAhKHNpemUgJiAoc2l6ZSAtIDEpKT46OnZhbHVlOworICAgICAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIHZhbHVlID0gSGFzaFRhYmxlQ2FwYWNpdHlGb3JTaXplU3BsaXR0ZXI8
c2l6ZSwgIShzaXplICYgKHNpemUgLSAxKSk+Ojp2YWx1ZTsKICAgICAgICAgQ09NUElMRV9BU1NF
UlQoc2l6ZSA+IDAsIEhhc2hUYWJsZU5vblplcm9NaW5pbXVtQ2FwYWNpdHkpOwogICAgICAgICBD
T01QSUxFX0FTU0VSVCghc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlID4+IDMxKSwgSGFzaFRh
YmxlTm9DYXBhY2l0eU92ZXJmbG93KTsKICAgICAgICAgQ09NUElMRV9BU1NFUlQodmFsdWUgPiAo
MiAqIHNpemUpLCBIYXNoVGFibGVDYXBhY2l0eUhvbGRzQ29udGVudFNpemUpOwpJbmRleDogU291
cmNlL1dURi93dGYvSGFzaFRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0hh
c2hUcmFpdHMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvSGFzaFRyYWl0
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtMzgsMjQgKzM4LDI0IEBAIHRlbXBsYXRlPGJvb2wgaXNJbnRlZ2VyLCB0eXBl
bmFtZSBUPiBzdHIKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEdlbmVyaWNIYXNoVHJh
aXRzQmFzZTxmYWxzZSwgVD4gewogICAgIC8vIFRoZSBlbXB0eVZhbHVlSXNaZXJvIGZsYWcgaXMg
dXNlZCB0byBvcHRpbWl6ZSBhbGxvY2F0aW9uIG9mIGVtcHR5IGhhc2ggdGFibGVzIHdpdGggemVy
b2VkIG1lbW9yeS4KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFs
c2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsK
IAogICAgIC8vIFRoZSBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiBmbGFnIGFsbG93cyB0aGUgaGFz
aCB0YWJsZSB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGNvZGUgdG8gY2hlY2sKICAgICAvLyBm
b3IgdGhlIGVtcHR5IHZhbHVlIHdoZW4gaXQgY2FuIGJlIGRvbmUgd2l0aCB0aGUgZXF1YWxpdHkg
b3BlcmF0b3IsIGJ1dCBhbGxvd3MgY3VzdG9tIGZ1bmN0aW9ucwogICAgIC8vIGZvciBjYXNlcyBs
aWtlIFN0cmluZyB0aGF0IG5lZWQgdGhlbS4KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBoYXNJc0Vt
cHR5VmFsdWVGdW5jdGlvbiA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBoYXNJ
c0VtcHR5VmFsdWVGdW5jdGlvbiA9IGZhbHNlOwogCiAgICAgLy8gVXNlZCBieSBXZWFrUHRyIHRv
IGluZGljYXRlIHRoYXQgdGhlIHZhbHVlIG1heSBiZWNvbWUgZGVsZXRlZCB3aXRob3V0IGJlaW5n
IGV4cGxpY2l0bHkgcmVtb3ZlZC4KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBoYXNJc1JlbGVhc2Vk
V2Vha1ZhbHVlRnVuY3Rpb24gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaGFz
SXNSZWxlYXNlZFdlYWtWYWx1ZUZ1bmN0aW9uID0gZmFsc2U7CiAKICAgICAvLyBUaGUgc3RhcnRp
bmcgdGFibGUgc2l6ZS4gQ2FuIGJlIG92ZXJyaWRkZW4gd2hlbiB3ZSBrbm93IGJlZm9yZWhhbmQg
dGhhdAogICAgIC8vIGEgaGFzaCB0YWJsZSB3aWxsIGhhdmUgYXQgbGVhc3QgTiBlbnRyaWVzLgot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtaW5pbXVtVGFibGVTaXplID0gODsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIG1pbmltdW1UYWJsZVNpemUgPSA4OwogfTsKIAogLy8gRGVm
YXVsdCBpbnRlZ2VyIHRyYWl0cyBkaXNhbGxvdyBib3RoIDAgYW5kIC0xIGFzIGtleXMgKG1heCB2
YWx1ZSBpbnN0ZWFkIG9mIC0xIGZvciB1bnNpZ25lZCkuCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgR2VuZXJpY0hhc2hUcmFpdHNCYXNlPHRydWUsIFQ+IDogR2VuZXJpY0hhc2hUcmFpdHNC
YXNlPGZhbHNlLCBUPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9
IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVl
OwogICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShUJiBzbG90KSB7IHNsb3Qg
PSBzdGF0aWNfY2FzdDxUPigtMSk7IH0KICAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShU
IHZhbHVlKSB7IHJldHVybiB2YWx1ZSA9PSBzdGF0aWNfY2FzdDxUPigtMSk7IH0KIH07CkBAIC05
OSwxNCArOTksMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxkb3VibGU+IDogRgog
CiAvLyBEZWZhdWx0IHVuc2lnbmVkIHRyYWl0cyBkaXNhbGxvdyBib3RoIDAgYW5kIG1heCBhcyBr
ZXlzIC0tIHVzZSB0aGVzZSB0cmFpdHMgdG8gYWxsb3cgemVybyBhbmQgZGlzYWxsb3cgbWF4IC0g
MS4KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRy
YWl0cyA6IEdlbmVyaWNIYXNoVHJhaXRzPFQ+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0
eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFs
dWVJc1plcm8gPSBmYWxzZTsKICAgICBzdGF0aWMgVCBlbXB0eVZhbHVlKCkgeyByZXR1cm4gc3Rk
OjpudW1lcmljX2xpbWl0czxUPjo6bWF4KCk7IH0KICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3RE
ZWxldGVkVmFsdWUoVCYgc2xvdCkgeyBzbG90ID0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4
KCkgLSAxOyB9CiAgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoVCB2YWx1ZSkgeyByZXR1
cm4gdmFsdWUgPT0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KCkgLSAxOyB9CiB9OwogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgU2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzIDog
R2VuZXJpY0hhc2hUcmFpdHM8VD4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJ
c1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVy
byA9IGZhbHNlOwogICAgIHN0YXRpYyBUIGVtcHR5VmFsdWUoKSB7IHJldHVybiBzdGQ6Om51bWVy
aWNfbGltaXRzPFQ+OjptaW4oKTsgfQogICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRW
YWx1ZShUJiBzbG90KSB7IHNsb3QgPSBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptYXgoKTsgfQog
ICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKFQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlID09
IHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1heCgpOyB9CkBAIC0xMTUsMTQgKzExNSwxNCBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgU2lnbmVkV2l0aFplCiAvLyBDYW4gYmUgdXNlZCB3
aXRoIHN0cm9uZyBlbnVtcywgYWxsb3dzIHplcm8gYXMga2V5LgogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RydWN0IFN0cm9uZ0VudW1IYXNoVHJhaXRzIDogR2VuZXJpY0hhc2hUcmFpdHM8VD4gewog
ICAgIHVzaW5nIFVuZGVybHlpbmdUeXBlID0gdHlwZW5hbWUgc3RkOjp1bmRlcmx5aW5nX3R5cGU8
VD46OnR5cGU7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiAg
ICAgc3RhdGljIFQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFQ+KHN0ZDo6bnVt
ZXJpY19saW1pdHM8VW5kZXJseWluZ1R5cGU+OjptYXgoKSk7IH0KICAgICBzdGF0aWMgdm9pZCBj
b25zdHJ1Y3REZWxldGVkVmFsdWUoVCYgc2xvdCkgeyBzbG90ID0gc3RhdGljX2Nhc3Q8VD4oc3Rk
OjpudW1lcmljX2xpbWl0czxVbmRlcmx5aW5nVHlwZT46Om1heCgpIC0gMSk7IH0KICAgICBzdGF0
aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShUIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA9PSBzdGF0aWNf
Y2FzdDxUPihzdGQ6Om51bWVyaWNfbGltaXRzPFVuZGVybHlpbmdUeXBlPjo6bWF4KCkgLSAxKTsg
fQogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0IEhhc2hUcmFpdHM8UCo+IDogR2Vu
ZXJpY0hhc2hUcmFpdHM8UCo+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNa
ZXJvID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9
IHRydWU7CiAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFAqJiBzbG90KSB7
IHNsb3QgPSByZWludGVycHJldF9jYXN0PFAqPigtMSk7IH0KICAgICBzdGF0aWMgYm9vbCBpc0Rl
bGV0ZWRWYWx1ZShQKiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgPT0gcmVpbnRlcnByZXRfY2FzdDxQ
Kj4oLTEpOyB9CiB9OwpAQCAtMTMwLDcgKzEzMCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFA+IHN0
cnVjdCBIYXNoVHJhaXRzPFAKICNpZmRlZiBfX09CSkNfXwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBI
YXNoVHJhaXRzPF9fdW5zYWZlX3VucmV0YWluZWQgaWQ+IDogR2VuZXJpY0hhc2hUcmFpdHM8X191
bnNhZmVfdW5yZXRhaW5lZCBpZD4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJ
c1plcm8gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJv
ID0gdHJ1ZTsKICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoX191bnNhZmVf
dW5yZXRhaW5lZCBpZCYgc2xvdCkgeyBzbG90ID0gKF9fYnJpZGdlIF9fdW5zYWZlX3VucmV0YWlu
ZWQgaWQpcmVpbnRlcnByZXRfY2FzdDxDRlR5cGVSZWY+KC0xKTsgfQogICAgIHN0YXRpYyBib29s
IGlzRGVsZXRlZFZhbHVlKF9fdW5zYWZlX3VucmV0YWluZWQgaWQgdmFsdWUpIHsgcmV0dXJuIChf
X2JyaWRnZSBDRlR5cGVSZWYpdmFsdWUgPT0gcmVpbnRlcnByZXRfY2FzdDxDRlR5cGVSZWY+KC0x
KTsgfQogfTsKQEAgLTEzOCw3ICsxMzgsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRz
PF9fdW5zYWZlX3VuCiAjZW5kaWYKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFNpbXBs
ZUNsYXNzSGFzaFRyYWl0cyA6IEdlbmVyaWNIYXNoVHJhaXRzPFQ+IHsKLSAgICBzdGF0aWMgY29u
c3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CiAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVs
ZXRlZFZhbHVlKFQmIHNsb3QpIHsgbmV3IChOb3ROdWxsLCBzdGQ6OmFkZHJlc3NvZihzbG90KSkg
VChIYXNoVGFibGVEZWxldGVkVmFsdWUpOyB9CiAgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFs
dWUoY29uc3QgVCYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVl
KCk7IH0KIH07CkBAIC0xOTYsNyArMTk2LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0
IEhhc2hUcmFpdHM8UgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0IFJlZkhhc2hU
cmFpdHMgOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8UmVmPFA+PiB7Ci0gICAgc3RhdGljIGNvbnN0
IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOwogICAgIHN0YXRpYyBSZWY8UD4gZW1wdHlWYWx1ZSgp
IHsgcmV0dXJuIEhhc2hUYWJsZUVtcHR5VmFsdWU7IH0KIAogICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZT4KQEAgLTIwNSw3ICsyMDUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBQPiBzdHJ1Y3QgUmVmSGFz
aFRyYWl0CiAgICAgICAgIG5ldyAoTm90TnVsbCwgc3RkOjphZGRyZXNzb2Yoc2xvdCkpIFJlZjxQ
PihIYXNoVGFibGVFbXB0eVZhbHVlKTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBo
YXNJc0VtcHR5VmFsdWVGdW5jdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGhhc0lzRW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKICAgICBzdGF0aWMgYm9vbCBpc0VtcHR5
VmFsdWUoY29uc3QgUmVmPFA+JiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUuaXNIYXNoVGFibGVFbXB0
eVZhbHVlKCk7IH0KIAogICAgIHN0YXRpYyB2b2lkIGFzc2lnblRvRW1wdHkoUmVmPFA+JiBlbXB0
eVZhbHVlLCBSZWY8UD4mJiBuZXdWYWx1ZSkgeyBBU1NFUlQoaXNFbXB0eVZhbHVlKGVtcHR5VmFs
dWUpKTsgZW1wdHlWYWx1ZS5hc3NpZ25Ub0hhc2hUYWJsZUVtcHR5VmFsdWUoV1RGTW92ZShuZXdW
YWx1ZSkpOyB9CkBAIC0yMjEsNyArMjIxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0
IFJlZkhhc2hUcmFpdAogdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0IEhhc2hUcmFpdHM8UmVm
PFA+PiA6IFJlZkhhc2hUcmFpdHM8UD4geyB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJh
aXRzPFN0cmluZz4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8U3RyaW5nPiB7Ci0gICAgc3RhdGlj
IGNvbnN0IGJvb2wgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiA9IHRydWU7CiAgICAgc3RhdGlj
IGJvb2wgaXNFbXB0eVZhbHVlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgc3RhdGljIHZvaWQgY3Vz
dG9tRGVsZXRlQnVja2V0KFN0cmluZyYpOwpAQCAtMjU5LDcgKzI1OSw3IEBAIHN0cnVjdCBIYXNo
VHJhaXRIYXNDdXN0b21EZWxldGUgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFg+IHN0YXRpYyBz
dGQ6OnRydWVfdHlwZSBUZXN0SGFzQ3VzdG9tRGVsZXRlKFgqLCBkZWNsdHlwZShYOjpjdXN0b21E
ZWxldGVCdWNrZXQoYnVja2V0QXJnKSkqID0gbnVsbHB0cik7CiAgICAgc3RhdGljIHN0ZDo6ZmFs
c2VfdHlwZSBUZXN0SGFzQ3VzdG9tRGVsZXRlKC4uLik7CiAgICAgdHlwZWRlZiBkZWNsdHlwZShU
ZXN0SGFzQ3VzdG9tRGVsZXRlKHN0YXRpY19jYXN0PFRyYWl0cyo+KG51bGxwdHIpKSkgUmVzdWx0
VHlwZTsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IFJlc3VsdFR5cGU6OnZhbHVlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2YWx1ZSA9IFJlc3VsdFR5cGU6OnZhbHVlOwogfTsK
IAogdGVtcGxhdGU8dHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBUPgpAQCAtMjg0LDEwICsyODQs
MTAgQEAgc3RydWN0IFBhaXJIYXNoVHJhaXRzIDogR2VuZXJpY0hhc2hUcmFpdAogICAgIHR5cGVk
ZWYgc3RkOjpwYWlyPHR5cGVuYW1lIEZpcnN0VHJhaXRzOjpUcmFpdFR5cGUsIHR5cGVuYW1lIFNl
Y29uZFRyYWl0czo6VHJhaXRUeXBlPiBUcmFpdFR5cGU7CiAgICAgdHlwZWRlZiBzdGQ6OnBhaXI8
dHlwZW5hbWUgRmlyc3RUcmFpdHM6OkVtcHR5VmFsdWVUeXBlLCB0eXBlbmFtZSBTZWNvbmRUcmFp
dHM6OkVtcHR5VmFsdWVUeXBlPiBFbXB0eVZhbHVlVHlwZTsKIAotICAgIHN0YXRpYyBjb25zdCBi
b29sIGVtcHR5VmFsdWVJc1plcm8gPSBGaXJzdFRyYWl0czo6ZW1wdHlWYWx1ZUlzWmVybyAmJiBT
ZWNvbmRUcmFpdHM6OmVtcHR5VmFsdWVJc1plcm87CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGVtcHR5VmFsdWVJc1plcm8gPSBGaXJzdFRyYWl0czo6ZW1wdHlWYWx1ZUlzWmVybyAmJiBTZWNv
bmRUcmFpdHM6OmVtcHR5VmFsdWVJc1plcm87CiAgICAgc3RhdGljIEVtcHR5VmFsdWVUeXBlIGVt
cHR5VmFsdWUoKSB7IHJldHVybiBzdGQ6Om1ha2VfcGFpcihGaXJzdFRyYWl0czo6ZW1wdHlWYWx1
ZSgpLCBTZWNvbmRUcmFpdHM6OmVtcHR5VmFsdWUoKSk7IH0KIAotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBtaW5pbXVtVGFibGVTaXplID0gRmlyc3RUcmFpdHM6Om1pbmltdW1UYWJsZVNpemU7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtaW5pbXVtVGFibGVTaXplID0gRmlyc3RU
cmFpdHM6Om1pbmltdW1UYWJsZVNpemU7CiAKICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxl
dGVkVmFsdWUoVHJhaXRUeXBlJiBzbG90KSB7IEZpcnN0VHJhaXRzOjpjb25zdHJ1Y3REZWxldGVk
VmFsdWUoc2xvdC5maXJzdCk7IH0KICAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25z
dCBUcmFpdFR5cGUmIHZhbHVlKSB7IHJldHVybiBGaXJzdFRyYWl0czo6aXNEZWxldGVkVmFsdWUo
dmFsdWUuZmlyc3QpOyB9CkBAIC0zMDcsMTAgKzMwNywxMCBAQCBzdHJ1Y3QgVHVwbGVIYXNoVHJh
aXRzIDogR2VuZXJpY0hhc2hUcmFpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGFsbFRydWUo
Qm9vbFR5cGUgdmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
Qm9vbFR5cGUsIHR5cGVuYW1lLi4uIEJvb2xUeXBlcz4KICAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgYWxsVHJ1ZShCb29sVHlwZSB2YWx1ZSwgQm9vbFR5cGVzLi4uIHZhbHVlcykgeyByZXR1cm4g
dmFsdWUgJiYgYWxsVHJ1ZSh2YWx1ZXMuLi4pOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1w
dHlWYWx1ZUlzWmVybyA9IGFsbFRydWUoRmlyc3RUcmFpdDo6ZW1wdHlWYWx1ZUlzWmVybywgVHJh
aXRzOjplbXB0eVZhbHVlSXNaZXJvLi4uKTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1w
dHlWYWx1ZUlzWmVybyA9IGFsbFRydWUoRmlyc3RUcmFpdDo6ZW1wdHlWYWx1ZUlzWmVybywgVHJh
aXRzOjplbXB0eVZhbHVlSXNaZXJvLi4uKTsKICAgICBzdGF0aWMgRW1wdHlWYWx1ZVR5cGUgZW1w
dHlWYWx1ZSgpIHsgcmV0dXJuIHN0ZDo6bWFrZV90dXBsZShGaXJzdFRyYWl0OjplbXB0eVZhbHVl
KCksIFRyYWl0czo6ZW1wdHlWYWx1ZSgpLi4uKTsgfQogCi0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIG1pbmltdW1UYWJsZVNpemUgPSBGaXJzdFRyYWl0OjptaW5pbXVtVGFibGVTaXplOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWluaW11bVRhYmxlU2l6ZSA9IEZpcnN0VHJhaXQ6
Om1pbmltdW1UYWJsZVNpemU7CiAKICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFs
dWUoVHJhaXRUeXBlJiBzbG90KSB7IEZpcnN0VHJhaXQ6OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZShz
dGQ6OmdldDwwPihzbG90KSk7IH0KICAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25z
dCBUcmFpdFR5cGUmIHZhbHVlKSB7IHJldHVybiBGaXJzdFRyYWl0Ojppc0RlbGV0ZWRWYWx1ZShz
dGQ6OmdldDwwPih2YWx1ZSkpOyB9CkBAIC0zMjcsNyArMzI3LDcgQEAgc3RydWN0IEtleVZhbHVl
UGFpckhhc2hUcmFpdHMgOiBHZW5lcmljSAogICAgIHR5cGVkZWYgS2V5VmFsdWVQYWlyPHR5cGVu
YW1lIEtleVRyYWl0czo6RW1wdHlWYWx1ZVR5cGUsIHR5cGVuYW1lIFZhbHVlVHJhaXRzOjpFbXB0
eVZhbHVlVHlwZT4gRW1wdHlWYWx1ZVR5cGU7CiAgICAgdHlwZWRlZiB0eXBlbmFtZSBWYWx1ZVRy
YWl0c0FyZzo6VHJhaXRUeXBlIFZhbHVlVHlwZTsKIAotICAgIHN0YXRpYyBjb25zdCBib29sIGVt
cHR5VmFsdWVJc1plcm8gPSBLZXlUcmFpdHM6OmVtcHR5VmFsdWVJc1plcm8gJiYgVmFsdWVUcmFp
dHM6OmVtcHR5VmFsdWVJc1plcm87CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFs
dWVJc1plcm8gPSBLZXlUcmFpdHM6OmVtcHR5VmFsdWVJc1plcm8gJiYgVmFsdWVUcmFpdHM6OmVt
cHR5VmFsdWVJc1plcm87CiAgICAgc3RhdGljIEVtcHR5VmFsdWVUeXBlIGVtcHR5VmFsdWUoKSB7
IHJldHVybiBLZXlWYWx1ZVBhaXI8dHlwZW5hbWUgS2V5VHJhaXRzOjpFbXB0eVZhbHVlVHlwZSwg
dHlwZW5hbWUgVmFsdWVUcmFpdHM6OkVtcHR5VmFsdWVUeXBlPihLZXlUcmFpdHM6OmVtcHR5VmFs
dWUoKSwgVmFsdWVUcmFpdHM6OmVtcHR5VmFsdWUoKSk7IH0KIAogICAgIHRlbXBsYXRlIDx0eXBl
bmFtZT4KQEAgLTMzNyw3ICszMzcsNyBAQCBzdHJ1Y3QgS2V5VmFsdWVQYWlySGFzaFRyYWl0cyA6
IEdlbmVyaWNICiAgICAgICAgIFZhbHVlVHJhaXRzOjp0ZW1wbGF0ZSBjb25zdHJ1Y3RFbXB0eVZh
bHVlPFZhbHVlVHJhaXRzPihzbG90LnZhbHVlKTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbWluaW11bVRhYmxlU2l6ZSA9IEtleVRyYWl0czo6bWluaW11bVRhYmxlU2l6ZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1pbmltdW1UYWJsZVNpemUgPSBLZXlUcmFp
dHM6Om1pbmltdW1UYWJsZVNpemU7CiAKICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVk
VmFsdWUoVHJhaXRUeXBlJiBzbG90KSB7IEtleVRyYWl0czo6Y29uc3RydWN0RGVsZXRlZFZhbHVl
KHNsb3Qua2V5KTsgfQogICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFRyYWl0
VHlwZSYgdmFsdWUpIHsgcmV0dXJuIEtleVRyYWl0czo6aXNEZWxldGVkVmFsdWUodmFsdWUua2V5
KTsgfQpAQCAtMzU3LDcgKzM1Nyw3IEBAIHN0cnVjdCBIYXNoVHJhaXRzPEtleVZhbHVlUGFpcjxL
ZXksIFZhbHUKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHN0cnVjdCBOdWxsYWJsZUhhc2hUcmFp
dHMgOiBwdWJsaWMgSGFzaFRyYWl0czxUPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlW
YWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVl
SXNaZXJvID0gZmFsc2U7CiAgICAgc3RhdGljIFQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8VD4oMSk7IH0KIH07CiAKQEAgLTM2NSw4ICszNjUsOCBAQCBzdHJ1Y3QgTnVs
bGFibGVIYXNoVHJhaXRzIDogcHVibGljIEhhc2hUCiAvLyBhbmQgaG93IHRvIGNvbnN0cnVjdCBi
b3RoLgogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHN0cnVjdCBDdXN0b21IYXNoVHJhaXRzIDogcHVi
bGljIEdlbmVyaWNIYXNoVHJhaXRzPFQ+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZh
bHVlSXNaZXJvID0gZmFsc2U7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgaGFzSXNFbXB0eVZhbHVl
RnVuY3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNa
ZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGhhc0lzRW1wdHlWYWx1ZUZ1
bmN0aW9uID0gdHJ1ZTsKICAgICAKICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFs
dWUoVCYgc2xvdCkKICAgICB7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEpTT05JbXBsIHsKIAogbmFtZXNwYWNlIHsKIAotc3Rh
dGljIGNvbnN0IGludCBzdGFja0xpbWl0ID0gMTAwMDsKK3N0YXRpYyBjb25zdGV4cHIgaW50IHN0
YWNrTGltaXQgPSAxMDAwOwogCiBlbnVtIGNsYXNzIFRva2VuIHsKICAgICBPYmplY3RCZWdpbiwK
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9KU09OVmFsdWVzLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3Rm
L0pTT05WYWx1ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAxNCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTIsNyArNTIsNyBA
QCBjbGFzcyBPYmplY3RCYXNlOwogLy8gRklYTUU6IHVuaWZ5IHRoaXMgSlNPTiBwYXJzZXIgd2l0
aCBKU09OUGFyc2UgaW4gSmF2YVNjcmlwdENvcmUuCiBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEUg
VmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxWYWx1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBj
b25zdCBpbnQgbWF4RGVwdGggPSAxMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IG1heERl
cHRoID0gMTAwMDsKIAogICAgIHZpcnR1YWwgflZhbHVlKCkKICAgICB7CkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9MaXN0SGFzaFNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0xpc3RI
YXNoU2V0LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL0xpc3RIYXNoU2V0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSwgQmVuamFtaW4gUG91bGFp
biA8aWtpcG91QGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xODEsNyArMTgxLDcgQEAgcHVi
bGljOgogdGVtcGxhdGU8dHlwZW5hbWUgSGFzaEFyZz4gc3RydWN0IExpc3RIYXNoU2V0Tm9kZUhh
c2hGdW5jdGlvbnMgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyB1bnNpZ25lZCBo
YXNoKGNvbnN0IFQmIGtleSkgeyByZXR1cm4gSGFzaEFyZzo6aGFzaChrZXktPm1fdmFsdWUpOyB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgVCYgYSwg
Y29uc3QgVCYgYikgeyByZXR1cm4gSGFzaEFyZzo6ZXF1YWwoYS0+bV92YWx1ZSwgYi0+bV92YWx1
ZSk7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRl
ZCA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0
eU9yRGVsZXRlZCA9IGZhbHNlOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVBcmcsIHR5
cGVuYW1lIEhhc2hBcmc+IGNsYXNzIExpc3RIYXNoU2V0SXRlcmF0b3IgewpJbmRleDogU291cmNl
L1dURi93dGYvTG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0xvY2suaAkocmV2
aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvTG9jay5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTE0LDggKzExNCw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5kIHN0cnVjdCBU
ZXN0V2ViS2l0QVBJOjpMb2NrSW5zcGVjdG9yOwogICAgIAotICAgIHN0YXRpYyBjb25zdCB1aW50
OF90IGlzSGVsZEJpdCA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgaGFzUGFya2VkQml0
ID0gMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgaXNIZWxkQml0ID0gMTsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVpbnQ4X3QgaGFzUGFya2VkQml0ID0gMjsKICAgICAKICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCBsb2NrU2xvdygpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIHVubG9ja1Nsb3coKTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0xvY2tBbGdvcml0aG0uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9Mb2NrQWxnb3JpdGhtLmgJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL0xvY2tBbGdvcml0aG0uaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTQ0LDggKzQ0LDggQEAgc3RydWN0IEVtcHR5TG9ja0hvb2tzIHsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgTG9ja1R5cGUsIExvY2tUeXBlIGlzSGVsZEJpdCwgTG9ja1R5cGUgaGFzUGFya2VkQml0
LCB0eXBlbmFtZSBIb29rcyA9IEVtcHR5TG9ja0hvb2tzPExvY2tUeXBlPj4KIGNsYXNzIExvY2tB
bGdvcml0aG0gewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICBz
dGF0aWMgY29uc3QgTG9ja1R5cGUgbWFzayA9IGlzSGVsZEJpdCB8IGhhc1BhcmtlZEJpdDsKKyAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIHN0YXRpYyBjb25z
dGV4cHIgTG9ja1R5cGUgbWFzayA9IGlzSGVsZEJpdCB8IGhhc1BhcmtlZEJpdDsKIAogcHVibGlj
OgogICAgIHN0YXRpYyBib29sIGxvY2tGYXN0QXNzdW1pbmdaZXJvKEF0b21pYzxMb2NrVHlwZT4m
IGxvY2spCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Mb2NrQWxnb3JpdGhtSW5saW5lcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0xvY2tBbGdvcml0aG1JbmxpbmVzLmgJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL0xvY2tBbGdvcml0aG1JbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC00MCw3ICs0MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlLCBM
b2NrVHlwZSBpc0gKIHZvaWQgTG9ja0FsZ29yaXRobTxMb2NrVHlwZSwgaXNIZWxkQml0LCBoYXNQ
YXJrZWRCaXQsIEhvb2tzPjo6bG9ja1Nsb3coQXRvbWljPExvY2tUeXBlPiYgbG9jaykKIHsKICAg
ICAvLyBUaGlzIG1hZ2ljIG51bWJlciB0dXJucyBvdXQgdG8gYmUgb3B0aW1hbCBiYXNlZCBvbiBw
YXN0IEppa2VzUlZNIGV4cGVyaW1lbnRzLgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzcGlu
TGltaXQgPSA0MDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNwaW5MaW1pdCA9IDQw
OwogICAgIAogICAgIHVuc2lnbmVkIHNwaW5Db3VudCA9IDA7CiAgICAgCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9Mb2dnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAko
cmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvTG9nZ2VyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNjQsNyArNjQsNyBAQCBjbGFzcyBIYXNUb0pTT05TdHJpbmcgewogICAgIHRlbXBsYXRlIDxj
bGFzcyBUPiBzdGF0aWMgc3RkOjpmYWxzZV90eXBlIHRlc3QoLi4uKTsKIAogcHVibGljOgotICAg
IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gZGVjbHR5cGUodGVzdDxDPihudWxscHRyKSk6OnZh
bHVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2YWx1ZSA9IGRlY2x0eXBlKHRlc3Q8Qz4o
bnVsbHB0cikpOjp2YWx1ZTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEFyZ3VtZW50LCBib29s
IGhhc0pTT04gPSBIYXNUb0pTT05TdHJpbmc8QXJndW1lbnQ+Ojp2YWx1ZT4KSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL0xvZ2dlckhlbHBlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0xv
Z2dlckhlbHBlci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9Mb2dnZXJI
ZWxwZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsOCArNTgsOCBAQCBwdWJsaWM6CiAKICAgICBj
b25zdCB2b2lkKiBjaGlsZExvZ0lkZW50aWZpZXIodWludDY0X3QgaWRlbnRpZmllcikgY29uc3QK
ICAgICB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBwYXJlbnRNYXNrID0gMHhmZmZm
ZmZmZmZmZmYwMDAwdWxsOwotICAgICAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgbWFza0xvd2Vy
V29yZCA9IDB4ZmZmZnVsbDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50NjRfdCBwYXJl
bnRNYXNrID0gMHhmZmZmZmZmZmZmZmYwMDAwdWxsOworICAgICAgICBzdGF0aWMgY29uc3RleHBy
IHVpbnQ2NF90IG1hc2tMb3dlcldvcmQgPSAweGZmZmZ1bGw7CiAgICAgICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigocmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4obG9n
SWRlbnRpZmllcigpKSAmIHBhcmVudE1hc2spIHwgKGlkZW50aWZpZXIgJiBtYXNrTG93ZXJXb3Jk
KSk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcAkocmV2aXNpb24gMjQ5OTc2KQor
KysgU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04OSw3
ICs4OSw3IEBAIGJvb2wgY2FuQWNjZXNzVGhyZWFkTG9jYWxEYXRhRm9yVGhyZWFkKFQKICNlbmRp
ZgogCiAvLyAwLjEgc2VjIGRlbGF5cyBpbiBVSSBpcyBhcHByb3hpbWF0ZSB0aHJlc2hvbGQgd2hl
biB0aGV5IGJlY29tZSBub3RpY2VhYmxlLiBIYXZlIGEgbGltaXQgdGhhdCdzIGhhbGYgb2YgdGhh
dC4KLXN0YXRpYyBjb25zdCBhdXRvIG1heFJ1bkxvb3BTdXNwZW5zaW9uVGltZSA9IDUwX21zOwor
c3RhdGljIGNvbnN0ZXhwciBhdXRvIG1heFJ1bkxvb3BTdXNwZW5zaW9uVGltZSA9IDUwX21zOwog
CiB2b2lkIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJlYWQoKQogewpJbmRleDogU291cmNl
L1dURi93dGYvTWV0YUFsbG9jYXRvclB0ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L01ldGFBbGxvY2F0b3JQdHIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYv
TWV0YUFsbG9jYXRvclB0ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdHJ1Y3Qg
TWV0YUFsbG9jYXRvclB0ckhhc2ggewogICAgIHsKICAgICAgICAgcmV0dXJuIGEgPT0gYjsKICAg
ICB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQg
PSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9y
RGVsZXRlZCA9IHRydWU7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGVmYXVs
dEhhc2g7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBT
b3VyY2UvV1RGL3d0Zi9Nb25vdG9uaWNUaW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsNyArNDAsNyBA
QCBjbGFzcyBQcmludFN0cmVhbTsKIGNsYXNzIE1vbm90b25pY1RpbWUgZmluYWwgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBDbG9ja1R5
cGUgY2xvY2tUeXBlID0gQ2xvY2tUeXBlOjpNb25vdG9uaWM7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBDbG9ja1R5cGUgY2xvY2tUeXBlID0gQ2xvY2tUeXBlOjpNb25vdG9uaWM7CiAgICAgCiAgICAg
Ly8gVGhpcyBpcyB0aGUgZXBvY2guIFNvLCB4LnNlY29uZHNTaW5jZUVwb2NoKCkgc2hvdWxkIGJl
IHRoZSBzYW1lIGFzIHggLSBNb25vdG9uaWNUaW1lKCkuCiAgICAgY29uc3RleHByIE1vbm90b25p
Y1RpbWUoKSB7IH0KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL05hdHVyYWxMb29wcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvd3RmL05hdHVyYWxMb29wcy5oCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvV1RGL3d0Zi9OYXR1cmFsTG9vcHMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyNiw3
ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIGJsb2NrcyB0byB0aGVpciBsb29wIGhlYWRl
cnMsIHdoaWNoIGdpdmVzIHVzIGFsbCBvZiB0aGUgYmxvY2tzIGluIHRoZQogICAgICAgICAvLyBs
b29wIGJvZHkuCiAgICAgCi0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAK
ICAgICAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAgICAgICAgIGRhdGFMb2coIkRvbWluYXRvcnM6
XG4iKTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgJKHJldmlzaW9uIDI0OTk3NikK
KysrIFNvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MTE0LDcgKzExNCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBPYmplY3RJZGVudGkK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBPYmplY3RJZGVudGlmaWVySGFzaCB7CiAgICAg
c3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgT2JqZWN0SWRlbnRpZmllcjxUPiYgaWRlbnRpZmll
cikgeyByZXR1cm4gaW50SGFzaChpZGVudGlmaWVyLm1faWRlbnRpZmllcik7IH0KICAgICBzdGF0
aWMgYm9vbCBlcXVhbChjb25zdCBPYmplY3RJZGVudGlmaWVyPFQ+JiBhLCBjb25zdCBPYmplY3RJ
ZGVudGlmaWVyPFQ+JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9v
bCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzPE9iamVjdElkZW50aWZpZXI8VD4+
IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPE9iamVjdElkZW50aWZpZXI8VD4+IHsgfTsKSW5kZXg6
IFNvdXJjZS9XVEYvd3RmL1JBTVNpemUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L1JBTVNpemUuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9SQU1TaXpl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00Miw3ICs0Miw3IEBACiBuYW1lc3BhY2UgV1RGIHsKIAogI2lm
IE9TKFdJTkRPV1MpCi1zdGF0aWMgY29uc3Qgc2l6ZV90IHJhbVNpemVHdWVzcyA9IDUxMiAqIE1C
Oworc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgcmFtU2l6ZUd1ZXNzID0gNTEyICogTUI7CiAjZW5k
aWYKIAogc3RhdGljIHNpemVfdCBjb21wdXRlUkFNU2l6ZSgpCkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9SZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9SZWYuaAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL1dURi93dGYvUmVmLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMzksNyAr
MjM5LDcgQEAgc3RydWN0IEdldFB0ckhlbHBlcjxSZWY8VCwgVT4+IHsKIAogdGVtcGxhdGUgPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFU+CiBzdHJ1Y3QgSXNTbWFydFB0cjxSZWY8VCwgVT4+IHsKLSAg
ICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIHZhbHVlID0gdHJ1ZTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9SZWZQdHIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvUmVmUHRy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzOSw3ICsyMzksNyBAQCBpbmxpbmUgUmVmUHRyPFQsIFU+
IHN0YXRpY19wb2ludGVyX2Nhc3QoCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBV
Pgogc3RydWN0IElzU21hcnRQdHI8UmVmUHRyPFQsIFU+PiB7Ci0gICAgc3RhdGljIGNvbnN0IGJv
b2wgdmFsdWUgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2YWx1ZSA9IHRydWU7
CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgpJbmRleDogU291cmNlL1dU
Ri93dGYvUmV0YWluUHRyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUmV0YWluUHRy
LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL1JldGFpblB0ci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA1
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTMzNiw3ICszMzYsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmV0YWlu
UHRyPHR5CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgSXNTbWFydFB0cjxSZXRh
aW5QdHI8VD4+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIHZhbHVlID0gdHJ1ZTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFA+IHN0cnVjdCBIYXNoVHJhaXRzPFJldGFpblB0cjxQPj4gOiBTaW1wbGVDbGFzc0hhc2hUcmFp
dHM8UmV0YWluUHRyPFA+PiB7CkBAIC0zNjYsNyArMzY2LDcgQEAgc3RydWN0IFJldGFpblB0ck9i
amVjdEhhc2ggewogICAgIHsKICAgICAgICAgcmV0dXJuIENGRXF1YWwoYS5nZXQoKSwgYi5nZXQo
KSk7CiAgICAgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JE
ZWxldGVkID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVU
b0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CiB9OwogCiBpbmxpbmUgYm9vbCBzYWZlQ0ZFcXVhbChD
RlR5cGVSZWYgYSwgQ0ZUeXBlUmVmIGIpCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9TY2hlZHVsZVBh
aXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TY2hlZHVsZVBhaXIuaAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvU2NoZWR1bGVQYWlyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNzksNyArNzksNyBAQCBzdHJ1Y3QgU2NoZWR1bGVQYWlySGFzaCB7CiAKICAgICBz
dGF0aWMgYm9vbCBlcXVhbChjb25zdCBSZWZQdHI8U2NoZWR1bGVQYWlyPiYgYSwgY29uc3QgUmVm
UHRyPFNjaGVkdWxlUGFpcj4mIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQogCi0gICAgc3RhdGljIGNv
bnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9
OwogCiB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPFNjaGVkdWxlUGFpcj4sIFNjaGVkdWxlUGFpckhh
c2g+IFNjaGVkdWxlUGFpckhhc2hTZXQ7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9TdGFja1Nob3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TdGFja1Nob3QuaAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL1dURi93dGYvU3RhY2tTaG90LmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTcs
NyArMTE3LDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBTdGFja1Nob3RIYXNoIHsKICAgICBzdGF0aWMg
dW5zaWduZWQgaGFzaChjb25zdCBTdGFja1Nob3QmIHNob3QpIHsgcmV0dXJuIHNob3QuaGFzaCgp
OyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgU3RhY2tTaG90JiBhLCBjb25zdCBTdGFj
a1Nob3QmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVU
b0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CiB9OwogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGVmYXVsdEhhc2g7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9T
dGRMaWJFeHRyYXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMu
aAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LTIw
MTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4
LTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDEzIFBhdHJpY2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKQEAgLTExMyw5ICsxMTMsOSBAQCBuYW1lc3BhY2UgV1RGIHsKIAogZW51bSBDaGVja01vdmVQ
YXJhbWV0ZXJUYWcgeyBDaGVja01vdmVQYXJhbWV0ZXIgfTsKIAotc3RhdGljIGNvbnN0IHNpemVf
dCBLQiA9IDEwMjQ7Ci1zdGF0aWMgY29uc3Qgc2l6ZV90IE1CID0gMTAyNCAqIDEwMjQ7Ci1zdGF0
aWMgY29uc3Qgc2l6ZV90IEdCID0gMTAyNCAqIDEwMjQgKiAxMDI0Oworc3RhdGljIGNvbnN0ZXhw
ciBzaXplX3QgS0IgPSAxMDI0Oworc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgTUIgPSAxMDI0ICog
MTAyNDsKK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IEdCID0gMTAyNCAqIDEwMjQgKiAxMDI0Owog
CiBpbmxpbmUgYm9vbCBpc1BvaW50ZXJBbGlnbmVkKHZvaWQqIHApCiB7CkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9UaW55UHRyU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvVGlueVB0
clNldC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9UaW55UHRyU2V0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNTksMTIgKzM1OSwxMiBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIGZyaWVuZCBjbGFzcyBKU0M6OkRGRzo6U3RydWN0dXJlQWJzdHJhY3RWYWx1ZTsKIAotICAg
IHN0YXRpYyBjb25zdCB1aW50cHRyX3QgZmF0RmxhZyA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IHVp
bnRwdHJfdCByZXNlcnZlZEZsYWcgPSAyOwotICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3QgZmxh
Z3MgPSBmYXRGbGFnIHwgcmVzZXJ2ZWRGbGFnOwotICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3Qg
cmVzZXJ2ZWRWYWx1ZSA9IDQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgZmF0Rmxh
ZyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgcmVzZXJ2ZWRGbGFnID0gMjsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBmbGFncyA9IGZhdEZsYWcgfCByZXNlcnZl
ZEZsYWc7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgcmVzZXJ2ZWRWYWx1ZSA9IDQ7
CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZGVmYXVsdFN0YXJ0aW5nU2l6ZSA9IDQ7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBkZWZhdWx0U3RhcnRpbmdTaXplID0gNDsKICAg
ICAKICAgICBORVZFUl9JTkxJTkUgYm9vbCBhZGRPdXRPZkxpbmUoVCB2YWx1ZSkKICAgICB7Cklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L1VSTC5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL1VSTC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdURiB7CiB0eXBlZGVmIFZl
Y3RvcjxjaGFyLCA1MTI+IENoYXJCdWZmZXI7CiB0eXBlZGVmIFZlY3RvcjxVQ2hhciwgNTEyPiBV
Q2hhckJ1ZmZlcjsKIAotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludmFsaWRQb3J0TnVtYmVyID0g
MHhGRkZGOworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBpbnZhbGlkUG9ydE51bWJlciA9IDB4
RkZGRjsKIAogLy8gQ29waWVzIHRoZSBzb3VyY2UgdG8gdGhlIGRlc3RpbmF0aW9uLCBhc3N1bWlu
ZyBhbGwgdGhlIHNvdXJjZSBjaGFyYWN0ZXJzIGFyZQogLy8gQVNDSUkuIFRoZSBkZXN0aW5hdGlv
biBidWZmZXIgbXVzdCBiZSBsYXJnZSBlbm91Z2guIE51bGwgY2hhcmFjdGVycyBhcmUgYWxsb3dl
ZApJbmRleDogU291cmNlL1dURi93dGYvVVJMSGFzaC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL1VSTEhhc2guaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvVVJM
SGFzaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzLDcgKzQzLDcgQEAgc3RydWN0IFVSTEhhc2ggewogICAg
ICAgICByZXR1cm4gU3RyaW5nSGFzaDo6ZXF1YWwoYS5zdHJpbmcoKSwgYi5zdHJpbmcoKSk7CiAg
ICAgfQogCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1w
dHlPckRlbGV0ZWQgPSBmYWxzZTsKIH07CiAKIC8vIFVSTEhhc2ggaXMgdGhlIGRlZmF1bHQgaGFz
aCBmb3IgU3RyaW5nCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9VUkxQYXJzZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1VSTFBhcnNlci5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9XVEYvd3RmL1VSTFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NTIsMTEg
KzY1MiwxMSBAQCB2b2lkIFVSTFBhcnNlcjo6ZW5jb2RlTm9uVVRGOFF1ZXJ5KGNvbnN0CiAKIE9w
dGlvbmFsPHVpbnQxNl90PiBVUkxQYXJzZXI6OmRlZmF1bHRQb3J0Rm9yUHJvdG9jb2woU3RyaW5n
VmlldyBzY2hlbWUpCiB7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IGZ0cFBvcnQgPSAyMTsK
LSAgICBzdGF0aWMgY29uc3QgdWludDE2X3QgaHR0cFBvcnQgPSA4MDsKLSAgICBzdGF0aWMgY29u
c3QgdWludDE2X3QgaHR0cHNQb3J0ID0gNDQzOwotICAgIHN0YXRpYyBjb25zdCB1aW50MTZfdCB3
c1BvcnQgPSA4MDsKLSAgICBzdGF0aWMgY29uc3QgdWludDE2X3Qgd3NzUG9ydCA9IDQ0MzsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGZ0cFBvcnQgPSAyMTsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVpbnQxNl90IGh0dHBQb3J0ID0gODA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50
MTZfdCBodHRwc1BvcnQgPSA0NDM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCB3c1Bv
cnQgPSA4MDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IHdzc1BvcnQgPSA0NDM7CiAg
ICAgCiAgICAgYXV0byBsZW5ndGggPSBzY2hlbWUubGVuZ3RoKCk7CiAgICAgaWYgKCFsZW5ndGgp
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9WZWN0b3IuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvVmVjdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykg
MjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQg
KEMpIDIwMDUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtNTkwLDggKzU5MCw4IEBAIHByaXZhdGU6CiAjaWYgQVNBTl9FTkFCTEVE
CiAgICAgLy8gQVNhbiBuZWVkcyB0aGUgYnVmZmVyIHRvIGJlZ2luIGFuZCBlbmQgb24gOC1ieXRl
IGJvdW5kYXJpZXMgZm9yIGFubm90YXRpb25zIHRvIHdvcmsuCiAgICAgLy8gRklYTUU6IEFkZCBh
IHJlZHpvbmUgYmVmb3JlIHRoZSBidWZmZXIgdG8gY2F0Y2ggb2ZmIGJ5IG9uZSBhY2Nlc3Nlcy4g
V2UgZG9uJ3QgbmVlZCBhIGd1YXJkIGFmdGVyLCBiZWNhdXNlIHRoZSBidWZmZXIgaXMgdGhlIGxh
c3QgbWVtYmVyIHZhcmlhYmxlLgotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYXNhbklubGluZUJ1
ZmZlckFsaWdubWVudCA9IHN0ZDo6YWxpZ25tZW50X29mPFQ+Ojp2YWx1ZSA+PSA4ID8gc3RkOjph
bGlnbm1lbnRfb2Y8VD46OnZhbHVlIDogODsKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGFzYW5B
ZGp1c3RlZElubGluZUNhcGFjaXR5ID0gKChzaXplb2YoVCkgKiBpbmxpbmVDYXBhY2l0eSArIDcp
ICYgfjcpIC8gc2l6ZW9mKFQpOworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGFzYW5Jbmxp
bmVCdWZmZXJBbGlnbm1lbnQgPSBzdGQ6OmFsaWdubWVudF9vZjxUPjo6dmFsdWUgPj0gOCA/IHN0
ZDo6YWxpZ25tZW50X29mPFQ+Ojp2YWx1ZSA6IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXpl
X3QgYXNhbkFkanVzdGVkSW5saW5lQ2FwYWNpdHkgPSAoKHNpemVvZihUKSAqIGlubGluZUNhcGFj
aXR5ICsgNykgJiB+NykgLyBzaXplb2YoVCk7CiAgICAgdHlwZW5hbWUgc3RkOjphbGlnbmVkX3N0
b3JhZ2U8c2l6ZW9mKFQpLCBhc2FuSW5saW5lQnVmZmVyQWxpZ25tZW50Pjo6dHlwZSBtX2lubGlu
ZUJ1ZmZlclthc2FuQWRqdXN0ZWRJbmxpbmVDYXBhY2l0eV07CiAjZWxzZQogICAgIHR5cGVuYW1l
IHN0ZDo6YWxpZ25lZF9zdG9yYWdlPHNpemVvZihUKSwgc3RkOjphbGlnbm1lbnRfb2Y8VD46OnZh
bHVlPjo6dHlwZSBtX2lubGluZUJ1ZmZlcltpbmxpbmVDYXBhY2l0eV07CkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9WZWN0b3JUcmFpdHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9WZWN0
b3JUcmFpdHMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvVmVjdG9yVHJh
aXRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDA4LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzYsMjMgKzM2LDIzIEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgc3RydWN0IFZlY3RvclRyYWl0c0Jhc2U8
ZmFsc2UsIFQ+CiAgICAgewotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0luaXRpYWxp
emF0aW9uID0gdHJ1ZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuSW5pdGlhbGl6ZVdp
dGhNZW1zZXQgPSBmYWxzZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuTW92ZVdpdGhN
ZW1jcHkgPSBmYWxzZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuQ29weVdpdGhNZW1j
cHkgPSBmYWxzZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuRmlsbFdpdGhNZW1zZXQg
PSBmYWxzZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuQ29tcGFyZVdpdGhNZW1jbXAg
PSBmYWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzSW5pdGlhbGl6YXRp
b24gPSB0cnVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2FuSW5pdGlhbGl6ZVdp
dGhNZW1zZXQgPSBmYWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbk1vdmVX
aXRoTWVtY3B5ID0gZmFsc2U7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Db3B5
V2l0aE1lbWNweSA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2FuRmls
bFdpdGhNZW1zZXQgPSBmYWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbkNv
bXBhcmVXaXRoTWVtY21wID0gZmFsc2U7CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+CiAgICAgc3RydWN0IFZlY3RvclRyYWl0c0Jhc2U8dHJ1ZSwgVD4KICAgICB7Ci0gICAgICAg
IHN0YXRpYyBjb25zdCBib29sIG5lZWRzSW5pdGlhbGl6YXRpb24gPSBmYWxzZTsKLSAgICAgICAg
c3RhdGljIGNvbnN0IGJvb2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSB0cnVlOwotICAgICAg
ICBzdGF0aWMgY29uc3QgYm9vbCBjYW5Nb3ZlV2l0aE1lbWNweSA9IHRydWU7Ci0gICAgICAgIHN0
YXRpYyBjb25zdCBib29sIGNhbkNvcHlXaXRoTWVtY3B5ID0gdHJ1ZTsKLSAgICAgICAgc3RhdGlj
IGNvbnN0IGJvb2wgY2FuRmlsbFdpdGhNZW1zZXQgPSBzaXplb2YoVCkgPT0gc2l6ZW9mKGNoYXIp
ICYmIHN0ZDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlOwotICAgICAgICBzdGF0aWMgY29uc3QgYm9v
bCBjYW5Db21wYXJlV2l0aE1lbWNtcCA9IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBuZWVkc0luaXRpYWxpemF0aW9uID0gZmFsc2U7CisgICAgICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBjYW5Jbml0aWFsaXplV2l0aE1lbXNldCA9IHRydWU7CisgICAgICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBjYW5Nb3ZlV2l0aE1lbWNweSA9IHRydWU7CisgICAgICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBjYW5Db3B5V2l0aE1lbWNweSA9IHRydWU7CisgICAgICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBjYW5GaWxsV2l0aE1lbXNldCA9IHNpemVvZihUKSA9PSBzaXplb2YoY2hh
cikgJiYgc3RkOjppc19pbnRlZ3JhbDxUPjo6dmFsdWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBjYW5Db21wYXJlV2l0aE1lbWNtcCA9IHRydWU7CiAgICAgfTsKIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CkBAIC02MCw5ICs2MCw5IEBAIG5hbWVzcGFjZSBXVEYgewogCiAgICAg
c3RydWN0IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIDogVmVjdG9yVHJhaXRzQmFzZTxmYWxzZSwg
dm9pZD4KICAgICB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGNhbkluaXRpYWxpemVXaXRo
TWVtc2V0ID0gdHJ1ZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuTW92ZVdpdGhNZW1j
cHkgPSB0cnVlOwotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBjYW5Db21wYXJlV2l0aE1lbWNt
cCA9IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Jbml0aWFsaXplV2l0
aE1lbXNldCA9IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Nb3ZlV2l0
aE1lbWNweSA9IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Db21wYXJl
V2l0aE1lbWNtcCA9IHRydWU7CiAgICAgfTsKIAogICAgIC8vIFdlIGtub3cgc21hcnQgcG9pbnRl
cnMgYXJlIHNpbXBsZSBlbm91Z2ggdGhhdCBpbml0aWFsaXppbmcgdG8gMCBhbmQgbW92aW5nIHdp
dGggbWVtY3B5CkBAIC03OSwxMiArNzksMTIgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIHR5
cGVkZWYgVmVjdG9yVHJhaXRzPEZpcnN0PiBGaXJzdFRyYWl0czsKICAgICAgICAgdHlwZWRlZiBW
ZWN0b3JUcmFpdHM8U2Vjb25kPiBTZWNvbmRUcmFpdHM7CiAKLSAgICAgICAgc3RhdGljIGNvbnN0
IGJvb2wgbmVlZHNJbml0aWFsaXphdGlvbiA9IEZpcnN0VHJhaXRzOjpuZWVkc0luaXRpYWxpemF0
aW9uIHx8IFNlY29uZFRyYWl0czo6bmVlZHNJbml0aWFsaXphdGlvbjsKLSAgICAgICAgc3RhdGlj
IGNvbnN0IGJvb2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSBGaXJzdFRyYWl0czo6Y2FuSW5p
dGlhbGl6ZVdpdGhNZW1zZXQgJiYgU2Vjb25kVHJhaXRzOjpjYW5Jbml0aWFsaXplV2l0aE1lbXNl
dDsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuTW92ZVdpdGhNZW1jcHkgPSBGaXJzdFRy
YWl0czo6Y2FuTW92ZVdpdGhNZW1jcHkgJiYgU2Vjb25kVHJhaXRzOjpjYW5Nb3ZlV2l0aE1lbWNw
eTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuQ29weVdpdGhNZW1jcHkgPSBGaXJzdFRy
YWl0czo6Y2FuQ29weVdpdGhNZW1jcHkgJiYgU2Vjb25kVHJhaXRzOjpjYW5Db3B5V2l0aE1lbWNw
eTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuRmlsbFdpdGhNZW1zZXQgPSBmYWxzZTsK
LSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuQ29tcGFyZVdpdGhNZW1jbXAgPSBGaXJzdFRy
YWl0czo6Y2FuQ29tcGFyZVdpdGhNZW1jbXAgJiYgU2Vjb25kVHJhaXRzOjpjYW5Db21wYXJlV2l0
aE1lbWNtcDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzSW5pdGlhbGl6YXRp
b24gPSBGaXJzdFRyYWl0czo6bmVlZHNJbml0aWFsaXphdGlvbiB8fCBTZWNvbmRUcmFpdHM6Om5l
ZWRzSW5pdGlhbGl6YXRpb247CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Jbml0
aWFsaXplV2l0aE1lbXNldCA9IEZpcnN0VHJhaXRzOjpjYW5Jbml0aWFsaXplV2l0aE1lbXNldCAm
JiBTZWNvbmRUcmFpdHM6OmNhbkluaXRpYWxpemVXaXRoTWVtc2V0OworICAgICAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgY2FuTW92ZVdpdGhNZW1jcHkgPSBGaXJzdFRyYWl0czo6Y2FuTW92ZVdp
dGhNZW1jcHkgJiYgU2Vjb25kVHJhaXRzOjpjYW5Nb3ZlV2l0aE1lbWNweTsKKyAgICAgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIGNhbkNvcHlXaXRoTWVtY3B5ID0gRmlyc3RUcmFpdHM6OmNhbkNv
cHlXaXRoTWVtY3B5ICYmIFNlY29uZFRyYWl0czo6Y2FuQ29weVdpdGhNZW1jcHk7CisgICAgICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5GaWxsV2l0aE1lbXNldCA9IGZhbHNlOworICAgICAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2FuQ29tcGFyZVdpdGhNZW1jbXAgPSBGaXJzdFRyYWl0
czo6Y2FuQ29tcGFyZVdpdGhNZW1jbXAgJiYgU2Vjb25kVHJhaXRzOjpjYW5Db21wYXJlV2l0aE1l
bWNtcDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9XVEYvd3Rm
L1dhbGxUaW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvV2FsbFRpbWUuaAkocmV2
aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvV2FsbFRpbWUuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC00MSw3ICs0MSw3IEBAIGNsYXNzIFByaW50U3RyZWFtOwogY2xhc3MgV2FsbFRpbWUgZmluYWwg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBjb25z
dCBDbG9ja1R5cGUgY2xvY2tUeXBlID0gQ2xvY2tUeXBlOjpXYWxsOworICAgIHN0YXRpYyBjb25z
dGV4cHIgQ2xvY2tUeXBlIGNsb2NrVHlwZSA9IENsb2NrVHlwZTo6V2FsbDsKICAgICAKICAgICAv
LyBUaGlzIGlzIHRoZSBlcG9jaC4gU28sIHguc2Vjb25kc1NpbmNlRXBvY2goKSBzaG91bGQgYmUg
dGhlIHNhbWUgYXMgeCAtIFdhbGxUaW1lKCkuCiAgICAgY29uc3RleHByIFdhbGxUaW1lKCkgeyB9
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9XZWFrSGFzaFNldC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL1dlYWtIYXNoU2V0LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYv
d3RmL1dlYWtIYXNoU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE3LCAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNyArMzMsNyBAQAogbmFt
ZXNwYWNlIFdURiB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8UmVmPFdlYWtQdHJJ
bXBsPj4gOiBSZWZIYXNoVHJhaXRzPFdlYWtQdHJJbXBsPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJv
b2wgaGFzSXNSZWxlYXNlZFdlYWtWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgaGFzSXNSZWxlYXNlZFdlYWtWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKICAgICBz
dGF0aWMgYm9vbCBpc1JlbGVhc2VkV2Vha1ZhbHVlKGNvbnN0IFJlZjxXZWFrUHRySW1wbD4mIHZh
bHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuICF2YWx1ZS5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1
ZSgpICYmICF2YWx1ZS5pc0hhc2hUYWJsZUVtcHR5VmFsdWUoKSAmJiAhdmFsdWUuZ2V0KCk7Cklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9Xb3JkTG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
d3RmL1dvcmRMb2NrLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL1dvcmRM
b2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04NCw5ICs4NCw5IEBAIHB1YmxpYzoKIHByb3RlY3Rl
ZDoKICAgICBmcmllbmQgc3RydWN0IFRlc3RXZWJLaXRBUEk6OkxvY2tJbnNwZWN0b3I7CiAgICAg
Ci0gICAgc3RhdGljIGNvbnN0IHVpbnRwdHJfdCBpc0xvY2tlZEJpdCA9IDE7Ci0gICAgc3RhdGlj
IGNvbnN0IHVpbnRwdHJfdCBpc1F1ZXVlTG9ja2VkQml0ID0gMjsKLSAgICBzdGF0aWMgY29uc3Qg
dWludHB0cl90IHF1ZXVlSGVhZE1hc2sgPSAzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0
cl90IGlzTG9ja2VkQml0ID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBpc1F1
ZXVlTG9ja2VkQml0ID0gMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBxdWV1ZUhl
YWRNYXNrID0gMzsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGxvY2tTbG93KCk7CiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgdW5sb2NrU2xvdygpOwpJbmRleDogU291cmNlL1dU
Ri93dGYvY29jb2EvQ1BVVGltZUNvY29hLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9jb2NvYS9DUFVUaW1lQ29jb2EuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RG
L3d0Zi9jb2NvYS9DUFVUaW1lQ29jb2EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcs
NyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIGNvbnN0IGludDY0X3QgbWljcm9zZWNv
bmRzUGVyU2Vjb25kID0gMTAwMDAwMDsKK3N0YXRpYyBjb25zdGV4cHIgaW50NjRfdCBtaWNyb3Nl
Y29uZHNQZXJTZWNvbmQgPSAxMDAwMDAwOwogCiBzdGF0aWMgaW50NjRfdCB0aW1lVmFsdWVUb01p
Y3Jvc2Vjb25kcyhjb25zdCB0aW1lX3ZhbHVlX3QmIHZhbHVlKQogewpJbmRleDogU291cmNlL1dU
Ri93dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi93dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0JKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxl
ckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjAsNyArNjAsNyBAQCBzdGF0aWMgaW50IG5v
dGlmeVRva2Vuc1szXTsKIC8vIGxvdyBtZW1vcnkgZXZlbnRzLCBncmVhdGx5IHJlZHVjaW5nIENQ
VSB1c2FnZS4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIHNfbWluaW11bUhvbGRPZmZUaW1lIHsgNV9z
IH07CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgc19o
b2xkT2ZmTXVsdGlwbGllciA9IDIwOworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzX2hvbGRP
ZmZNdWx0aXBsaWVyID0gMjA7CiAjZW5kaWYKIAogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
Omluc3RhbGwoKQpJbmRleDogU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudERl
Y29kZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0
ZW50RGVjb2Rlci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9wZXJzaXN0
ZW5jZS9QZXJzaXN0ZW50RGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw3ICs5NSw3IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW4obnVt
RWxlbWVudHMgKiBzaXplb2YoVCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBjb25zdCBib29sIGlz
SVBDRGVjb2RlciA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lQQ0RlY29k
ZXIgPSBmYWxzZTsKIAogcHJpdmF0ZToKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBidWZm
ZXJJc0xhcmdlRW5vdWdoVG9Db250YWluKHNpemVfdCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50RW5jb2Rlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRFbmNvZGVyLmgJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRFbmNvZGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgdm9pZCB1cGRhdGVDaGVja3N1bUZvckRhdGEoU0hBMSYsIGNvbnN0IHVpbnQ4
X3QqLCBzaXplX3QpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlPiBzdGF0aWMgdm9pZCB1
cGRhdGVDaGVja3N1bUZvck51bWJlcihTSEExJiwgVHlwZSk7CiAKLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBpc0lQQ0VuY29kZXIgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJ
UENFbmNvZGVyID0gZmFsc2U7CiAKIHByaXZhdGU6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgZW5jb2RlKGJvb2wpOwpAQCAtMTAwLDE2ICsxMDAsMTYgQEAgcHJpdmF0ZToKICAgICBTSEEx
IG1fc2hhMTsKIH07CiAKLXRlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PGJvb2w+IHsg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gMzsgfTsKLXRlbXBsYXRlIDw+IHN0cnVjdCBF
bmNvZGVyOjpTYWx0PHVpbnQ4X3Q+IHsgc3RhdGljIGNvbnN0ICB1bnNpZ25lZCB2YWx1ZSA9IDU7
IH07Ci10ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDx1aW50MTZfdD4geyBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgdmFsdWUgPSA3OyB9OwotdGVtcGxhdGUgPD4gc3RydWN0IEVuY29kZXI6
OlNhbHQ8dWludDMyX3Q+IHsgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gMTE7IH07Ci10
ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDx1aW50NjRfdD4geyBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgdmFsdWUgPSAxMzsgfTsKLXRlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0
PGludDMyX3Q+IHsgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gMTc7IH07Ci10ZW1wbGF0
ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDxpbnQ2NF90PiB7IHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCB2YWx1ZSA9IDE5OyB9OwotdGVtcGxhdGUgPD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8ZmxvYXQ+
IHsgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gMjM7IH07Ci10ZW1wbGF0ZSA8PiBzdHJ1
Y3QgRW5jb2Rlcjo6U2FsdDxkb3VibGU+IHsgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0g
Mjk7IH07Ci10ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDx1aW50OF90Kj4geyBzdGF0
aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSAxMDE7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5j
b2Rlcjo6U2FsdDxib29sPiB7IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgdmFsdWUgPSAzOyB9
OwordGVtcGxhdGUgPD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8dWludDhfdD4geyBzdGF0aWMgY29u
c3RleHByICB1bnNpZ25lZCB2YWx1ZSA9IDU7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rl
cjo6U2FsdDx1aW50MTZfdD4geyBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZhbHVlID0gNzsg
fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PHVpbnQzMl90PiB7IHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgdmFsdWUgPSAxMTsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbmNv
ZGVyOjpTYWx0PHVpbnQ2NF90PiB7IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgdmFsdWUgPSAx
MzsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PGludDMyX3Q+IHsgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCB2YWx1ZSA9IDE3OyB9OwordGVtcGxhdGUgPD4gc3RydWN0IEVu
Y29kZXI6OlNhbHQ8aW50NjRfdD4geyBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZhbHVlID0g
MTk7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDxmbG9hdD4geyBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIHZhbHVlID0gMjM7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5j
b2Rlcjo6U2FsdDxkb3VibGU+IHsgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB2YWx1ZSA9IDI5
OyB9OwordGVtcGxhdGUgPD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8dWludDhfdCo+IHsgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCB2YWx1ZSA9IDEwMTsgfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1l
IFR5cGU+CiB2b2lkIEVuY29kZXI6OnVwZGF0ZUNoZWNrc3VtRm9yTnVtYmVyKFNIQTEmIHNoYTEs
IFR5cGUgdmFsdWUpCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNDQsMTEgKzQ0LDExIEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAgICAg
cmV0dXJuIGEgPT0gYjsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNh
ZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAgICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogICAgIH07
CiAKICAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdURjo6QXRvbVN0cmluZz4gOiBT
aW1wbGVDbGFzc0hhc2hUcmFpdHM8V1RGOjpBdG9tU3RyaW5nPiB7Ci0gICAgICAgIHN0YXRpYyBj
b25zdCBib29sIGhhc0lzRW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKKyAgICAgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGhhc0lzRW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKICAgICAgICAg
c3RhdGljIGJvb2wgaXNFbXB0eVZhbHVlKGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQogICAgICAg
ICB7CiAgICAgICAgICAgICByZXR1cm4gdmFsdWUuaXNOdWxsKCk7CkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi90ZXh0L0NTdHJpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L0NT
dHJpbmcuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvdGV4dC9DU3RyaW5n
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDAzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDAzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC05Niw3ICs5Niw3IEBAIFdURl9FWFBPUlRfUFJJVkFURSBi
b29sIG9wZXJhdG9yPChjb25zdCAKIHN0cnVjdCBDU3RyaW5nSGFzaCB7CiAgICAgc3RhdGljIHVu
c2lnbmVkIGhhc2goY29uc3QgQ1N0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmcuaGFzaCgp
OyB9CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IENTdHJp
bmcmIGEsIGNvbnN0IENTdHJpbmcmIGIpOwotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0Nv
bXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RydWN0IERlZmF1bHRIYXNoOwpJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgbWF4Q2FwYWNpdHkgPSAKIAogc3RhdGljIHVuc2lnbmVkIGV4cGFu
ZGVkQ2FwYWNpdHkodW5zaWduZWQgY2FwYWNpdHksIHVuc2lnbmVkIHJlcXVpcmVkTGVuZ3RoKQog
ewotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtaW5pbXVtQ2FwYWNpdHkgPSAxNjsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1pbmltdW1DYXBhY2l0eSA9IDE2OwogICAgIHJldHVy
biBzdGQ6Om1heChyZXF1aXJlZExlbmd0aCwgc3RkOjptYXgobWluaW11bUNhcGFjaXR5LCBzdGQ6
Om1pbihjYXBhY2l0eSAqIDIsIG1heENhcGFjaXR5KSkpOwogfQogCkluZGV4OiBTb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ0hhc2guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0hhc2guaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdIYXNoLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQKICAqIENv
cHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAwOS4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC03NSw3ICs3NSw3IEBAIG5hbWVzcGFjZSBXVEYgewog
ICAgICAgICAgICAgcmV0dXJuIGVxdWFsKGEuaW1wbCgpLCBiLmltcGwoKSk7CiAgICAgICAgIH0K
IAotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRl
ZCA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCiAgICAgc3RydWN0IEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaCB7CkBAIC0xNTQsNyArMTU0LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAg
ICAgICAgICByZXR1cm4gYSA9PSBiIHx8IGVxdWFsKGEuaW1wbCgpLCBiLmltcGwoKSk7CiAgICAg
ICAgIH0KIAotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9y
RGVsZXRlZCA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29t
cGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9OwogCiAgICAgLy8gVGhpcyBoYXNo
IGNhbiBiZSB1c2VkIGluIGNhc2VzIHdoZXJlIHRoZSBrZXkgaXMgYSBoYXNoIG9mIGEgc3RyaW5n
LCBidXQgd2UgZG9uJ3QKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCShyZXZpc2lvbiAy
NDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTk0LDcgKzk0LDcgQEAgc3RydWN0
IFN0cmluZ1N0YXRzIHsKICAgICB2b2lkIHJlbW92ZVN0cmluZyhTdHJpbmdJbXBsJik7CiAgICAg
dm9pZCBwcmludFN0YXRzKCk7CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19wcmludFN0
cmluZ1N0YXRzRnJlcXVlbmN5ID0gNTAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IHNfcHJpbnRTdHJpbmdTdGF0c0ZyZXF1ZW5jeSA9IDUwMDA7CiAgICAgc3RhdGljIHN0ZDo6YXRv
bWljPHVuc2lnbmVkPiBzX3N0cmluZ1JlbW92ZXNUaWxsUHJpbnRTdGF0czsKIAogICAgIHN0ZDo6
YXRvbWljPHVuc2lnbmVkPiBtX3JlZkNhbGxzOwpAQCAtNTE5LDggKzUxOSw4IEBAIHByaXZhdGU6
CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIE5FVkVSX0lOTElORSB1bnNpZ25lZCBoYXNoU2xvd0Nh
c2UoKSBjb25zdDsKIAogICAgIC8vIFRoZSBib3R0b20gYml0IGluIHRoZSByZWYgY291bnQgaW5k
aWNhdGVzIGEgc3RhdGljIChpbW1vcnRhbCkgc3RyaW5nLgotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBzX3JlZkNvdW50RmxhZ0lzU3RhdGljU3RyaW5nID0gMHgxOwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBzX3JlZkNvdW50SW5jcmVtZW50ID0gMHgyOyAvLyBUaGlzIGFsbG93cyB1cyB0
byByZWYgLyBkZXJlZiB3aXRob3V0IGRpc3R1cmJpbmcgdGhlIHN0YXRpYyBzdHJpbmcgZmxhZy4K
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNfcmVmQ291bnRGbGFnSXNTdGF0aWNTdHJp
bmcgPSAweDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzX3JlZkNvdW50SW5jcmVt
ZW50ID0gMHgyOyAvLyBUaGlzIGFsbG93cyB1cyB0byByZWYgLyBkZXJlZiB3aXRob3V0IGRpc3R1
cmJpbmcgdGhlIHN0YXRpYyBzdHJpbmcgZmxhZy4KIAogI2lmIFNUUklOR19TVEFUUwogICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgU3RyaW5nU3RhdHMgbV9zdHJpbmdTdGF0czsKSW5kZXg6
IFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNv
bnZlcnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw4ICs0NSw4IEBAIGlubGluZSBib29sIGlzQ2hh
cmFjdGVyQWxsb3dlZEluQmFzZShVQ2gKIHRlbXBsYXRlPHR5cGVuYW1lIEludGVncmFsVHlwZSwg
dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIGlubGluZSBJbnRlZ3JhbFR5cGUgdG9JbnRlZ3JhbFR5
cGUoY29uc3QgQ2hhcmFjdGVyVHlwZSogZGF0YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCogb2sgPSBu
dWxscHRyLCBpbnQgYmFzZSA9IDEwKQogewotICAgIHN0YXRpYyBjb25zdCBJbnRlZ3JhbFR5cGUg
aW50ZWdyYWxNYXggPSBzdGQ6Om51bWVyaWNfbGltaXRzPEludGVncmFsVHlwZT46Om1heCgpOwot
ICAgIHN0YXRpYyBjb25zdCBib29sIGlzU2lnbmVkID0gc3RkOjpudW1lcmljX2xpbWl0czxJbnRl
Z3JhbFR5cGU+Ojppc19zaWduZWQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBJbnRlZ3JhbFR5cGUg
aW50ZWdyYWxNYXggPSBzdGQ6Om51bWVyaWNfbGltaXRzPEludGVncmFsVHlwZT46Om1heCgpOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc1NpZ25lZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8
SW50ZWdyYWxUeXBlPjo6aXNfc2lnbmVkOwogICAgIGNvbnN0IEludGVncmFsVHlwZSBtYXhNdWx0
aXBsaWVyID0gaW50ZWdyYWxNYXggLyBiYXNlOwogCiAgICAgSW50ZWdyYWxUeXBlIHZhbHVlID0g
MDsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvU3ltYm9sUmVnaXN0cnkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N5bWJvbFJlZ2lzdHJ5LmgJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvU3ltYm9sUmVnaXN0cnkuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgWXVzdWtlIFN1enVr
aSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTY4LDcgKzY5LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8U3ltYm9sUmVn
aQogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxTeW1ib2xSZWdpc3RyeUtleT4g
OiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8U3ltYm9sUmVnaXN0cnlLZXk+IHsKLSAgICBzdGF0aWMg
Y29uc3QgYm9vbCBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGhhc0lzRW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKICAgICBzdGF0aWMg
Ym9vbCBpc0VtcHR5VmFsdWUoY29uc3QgU3ltYm9sUmVnaXN0cnlLZXkmIGtleSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBrZXkuaW1wbCgpID09IG51bGxwdHI7CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi90ZXh0L1RleHRTdHJlYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dFN0cmVhbS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dFN0cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsMTEgKzMxLDExIEBA
CiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdGF0aWMgY29uc3Qgc2l6ZV90IHByaW50QnVmZmVyU2l6
ZSA9IDEwMDsgLy8gbGFyZ2UgZW5vdWdoIGZvciBhbnkgaW50ZWdlciBvciBmbG9hdGluZyBwb2lu
dCB2YWx1ZSBpbiBzdHJpbmcgZm9ybWF0LCBpbmNsdWRpbmcgdHJhaWxpbmcgbnVsbCBjaGFyYWN0
ZXIKK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHByaW50QnVmZmVyU2l6ZSA9IDEwMDsgLy8gbGFy
Z2UgZW5vdWdoIGZvciBhbnkgaW50ZWdlciBvciBmbG9hdGluZyBwb2ludCB2YWx1ZSBpbiBzdHJp
bmcgZm9ybWF0LCBpbmNsdWRpbmcgdHJhaWxpbmcgbnVsbCBjaGFyYWN0ZXIKIAogc3RhdGljIGlu
bGluZSBib29sIGhhc0ZyYWN0aW9ucyhkb3VibGUgdmFsKQogewotICAgIHN0YXRpYyBjb25zdCBk
b3VibGUgc19lcHNpbG9uID0gMC4wMDAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIHNf
ZXBzaWxvbiA9IDAuMDAwMTsKICAgICBpbnQgaXZhbCA9IHN0YXRpY19jYXN0PGludD4odmFsKTsK
ICAgICBkb3VibGUgZHZhbCA9IHN0YXRpY19jYXN0PGRvdWJsZT4oaXZhbCk7CiAgICAgcmV0dXJu
IGZhYnModmFsIC0gZHZhbCkgPiBzX2Vwc2lsb247CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0
L1dURlN0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5n
LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogKEMpIDE5OTkgTGFycyBLbm9s
bCAoa25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDQ0LDggKzQ0
NCw4IEBAIFdURl9FWFBPUlRfUFJJVkFURSBjb25zdCBTdHJpbmcmIG51bGxTdHIKIHRlbXBsYXRl
PHR5cGVuYW1lPiBzdHJ1Y3QgRGVmYXVsdEhhc2g7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0
SGFzaDxTdHJpbmc+IHsgdXNpbmcgSGFzaCA9IFN0cmluZ0hhc2g7IH07CiB0ZW1wbGF0ZTw+IHN0
cnVjdCBWZWN0b3JUcmFpdHM8U3RyaW5nPiA6IFZlY3RvclRyYWl0c0Jhc2U8ZmFsc2UsIHZvaWQ+
IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBjYW5Jbml0aWFsaXplV2l0aE1lbXNldCA9IHRydWU7
Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuTW92ZVdpdGhNZW1jcHkgPSB0cnVlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Jbml0aWFsaXplV2l0aE1lbXNldCA9IHRydWU7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIGNhbk1vdmVXaXRoTWVtY3B5ID0gdHJ1ZTsKIH07CiAKIHRl
bXBsYXRlPD4gc3RydWN0IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb25UcmFpdDxTdHJpbmc+IHsK
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvY29jb2EvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVUNvY29hLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L2NvY29hL1Rl
eHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VDb2NvYS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9XVEYvd3RmL3RleHQvY29jb2EvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVUNv
Y29hLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA3LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC00NSw3ICs0NSw3IEBAIFRleHRCcmVha0l0ZXJhdG9yOjpUZXh0QnJl
YWtJdGVyYXRvcihTdHIKIHsKIH0KIAotc3RhdGljIGNvbnN0IGludCBtYXhMb2NhbGVTdHJpbmdM
ZW5ndGggPSAzMjsKK3N0YXRpYyBjb25zdGV4cHIgaW50IG1heExvY2FsZVN0cmluZ0xlbmd0aCA9
IDMyOwogCiBzdGF0aWMgaW5saW5lIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gdGV4dEJyZWFrTG9j
YWxlUHJlZmVyZW5jZSgpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDk5NzYpCisrKyBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MiBAQAor
MjAxOS0wOS0xNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNl
IGNvbnN0ZXhwciBpbnN0ZWFkIG9mIGNvbnN0IGluIHN5bWJvbCBkZWZpbml0aW9ucyB0aGF0IGFy
ZSBvYnZpb3VzbHkgY29uc3RleHByLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAxODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JCYXNlLmg6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01XaW5kb3dQcm9wZXJ0aWVzLmg6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6
CisgICAgICAgIChHZW5lcmF0ZVByb3RvdHlwZURlY2xhcmF0aW9uKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0Lmg6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEZvckNvbnRleHQuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0Lmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmg6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmg6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJ
bmRleGVkR2V0dGVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkR2V0dGVyQ2FsbFdpdGguaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmll
ci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
clRocm93aW5nRXhjZXB0aW9uLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQW5kU2V0dGVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3Bl
cnRpZXMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmg6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oOgorICAgICAg
ICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5oOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1l
X2FycmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAgICAgICog
YnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisKIDIwMTktMDktMTcgIE5pa29sYXMgWmltbWVybWFu
biAgPHppbW1lcm1hbm5Aa2RlLm9yZz4KIAogICAgICAgICBTVkcgPGFuaW1hdGVNb3Rpb24+IGRv
ZXMgbm90IHJlc2V0IHRoZSBlbGVtZW50IHRvIGl0cyBmaXJzdCBhbmltYXRpb24gZnJhbWUgaWYg
aXRzIGZpbGwgaXMgInJlbW92ZSIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQ29uc3RydWN0b3JCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01Db25zdHJ1Y3RvckJhc2UuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3RvckJhc2UuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IENhbm9u
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTI4
LDcgKzI4LDcgQEAgY2xhc3MgSlNET01Db25zdHJ1Y3RvckJhc2UgOiBwdWJsaWMgSlNETwogcHVi
bGljOgogICAgIHVzaW5nIEJhc2UgPSBKU0RPTU9iamVjdDsKIAotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpJbXBs
ZW1lbnRzSGFzSW5zdGFuY2UgfCBKU0M6OkltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgfCBK
U0M6Ok92ZXJyaWRlc0dldENhbGxEYXRhOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SW1wbGVtZW50c0hh
c0luc3RhbmNlIHwgSlNDOjpJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlIHwgSlNDOjpPdmVy
cmlkZXNHZXRDYWxsRGF0YTsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiAKIHBy
b3RlY3RlZDoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93UHJv
cGVydGllcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93UHJvcGVydGllcy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3BlcnRpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OSw3ICs0
OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpK
U09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlTbG90Jik7CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1
cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IEpTQzo6SXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3Q7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8
IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElz
Tm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpJc0ltbXV0
YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdDsKIAogcHJvdGVjdGVkOgogICAgIEpTRE9NV2luZG93
UHJvcGVydGllcyhKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0M6OkpTR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkK
QEAgLTI2MTQsNyArMjYxNCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIH1cblxuIik7CiAgICAgfQogCi0gICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFsc2U7XG5c
biIpIGlmIElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpOworICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxz
ZTtcblxuIikgaWYgSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFjZSk7CiAKICAgICAkc3RydWN0
dXJlRmxhZ3N7IkpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZSJ9ID0gMSBpZiBJbnN0YW5jZVBy
b3BlcnR5Q291bnQoJGludGVyZmFjZSkgPiAwOwogICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpO
ZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMifSA9IDEgaWYgJGludGVyZmFjZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57TmV3SW1wdXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRzfTsKQEAg
LTI4ODIsNyArMjg4Miw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICMgc3RydWN0dXJlIGZs
YWdzCiAgICAgaWYgKCVzdHJ1Y3R1cmVGbGFncykgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAicHVibGljOlxuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mi
KTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MiKTsKICAgICAgICAg
Zm9yZWFjaCBteSAkc3RydWN0dXJlRmxhZyAoc29ydCAoa2V5cyAlc3RydWN0dXJlRmxhZ3MpKSB7
CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiIHwgIiAuICRzdHJ1Y3R1cmVGbGFn
KTsKICAgICAgICAgfQpAQCAtNzEzNyw3ICs3MTM3LDcgQEAgc3ViIEdlbmVyYXRlUHJvdG90eXBl
RGVjbGFyYXRpb24KICAgICAjIHN0cnVjdHVyZSBmbGFncwogICAgIGlmICglc3RydWN0dXJlRmxh
Z3MpIHsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAicHVibGljOlxuIik7Ci0gICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIik7CiAgICAgICAgIGZvcmVhY2ggbXkgJHN0cnVjdHVyZUZsYWcgKHNv
cnQgKGtleXMgJXN0cnVjdHVyZUZsYWdzKSkgewogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiIHwgIiAuICRzdHJ1Y3R1cmVGbGFnKTsKICAgICAgICAgfQpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RBY3RpdmVET01PYmplY3QuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVl
IGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAg
ICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzUHV0UHJvcGVydHlTZWN1cml0eUNoZWNrIHwgSlND
OjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzUHV0UHJvcGVy
dHlTZWN1cml0eUNoZWNrIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogcHJvdGVjdGVk
OgogICAgIEpTVGVzdEFjdGl2ZURPTU9iamVjdChKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFs
T2JqZWN0JiwgUmVmPFRlc3RBY3RpdmVET01PYmplY3Q+JiYpOwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFbmFibGVkQnlTZXR0aW5nLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmgJKHdvcmtp
bmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFs
dWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
ICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYp
OwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIHByb3RlY3RlZDoKICAgICBKU1Rl
c3RFbmFibGVkQnlTZXR0aW5nKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBS
ZWY8VGVzdEVuYWJsZWRCeVNldHRpbmc+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEZvckNvbnRleHQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxl
ZEZvckNvbnRleHQuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250ZXh0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0
Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBz
dGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RFbmFi
bGVkRm9yQ29udGV4dChKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRl
c3RFbmFibGVkRm9yQ29udGV4dD4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRUYXJnZXQuaAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZXN0RXZlbnRUYXJnZXQmPihCYXNl
Ojp3cmFwcGVkKCkpOwogICAgIH0KIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVy
dHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Q
cm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok1hc3F1ZXJh
ZGVzQXNVbmRlZmluZWQgfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6
T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3Bl
cnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3du
UHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6
Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0RXZlbnRU
YXJnZXQoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0RXZlbnRU
YXJnZXQ+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0R2xvYmFsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5oCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xv
YmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gcHRyOwogICAgIH0KIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVz
dHJ1Y3Rpb24gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVj
dGlvbiA9IGZhbHNlOwogCiAgICAgc3RhdGljIFRlc3RHbG9iYWxPYmplY3QqIHRvV3JhcHBlZChK
U0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlND
ZWxsKik7CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVl
IGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAg
ICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0
R2xvYmFsT2JqZWN0KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVz
dEdsb2JhbE9iamVjdD4mJik7CiAKQEAgLTEwNCw3ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIHsK
ICAgICB9CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogfTsKIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgSlNET01XcmFwcGVyQ29udmVydGVyVHJhaXRzPFRlc3RHbG9iYWxPYmplY3Q+IHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaAko
cmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
NTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1
Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2
b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5M
ZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6
T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkludGVyY2VwdHNH
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1l
czsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyKEpTQzo6
U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXI+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBK
U0M6OkhlYXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpJbnRlcmNlcHRzR2V0
T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2
ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9i
YWxPYmplY3QmLCBSZWY8VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbj4mJik7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRD
b25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0
YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZl
bldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkludGVy
Y2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBK
U0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVy
dHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0SW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1
Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpT
Qzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgYW5h
bHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6
OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFpl
cm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1w
dXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90
QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiBwcm90ZWN0ZWQ6CiAg
ICAgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyKEpTQzo6U3RydWN0dXJl
KiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRl
bnRpZmllcj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTcs
NyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3Rv
cihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lk
IGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwg
SlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNO
b3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJ
c0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVk
OgogICAgIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uKEpTQzo6
U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmgJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5oCSh3b3JraW5nIGNvcHkpCkBA
IC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0
cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGlj
IHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2Vu
Y2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5n
dGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3Zl
cnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5
U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJv
cGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiBwcm90
ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIoSlND
OjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXI+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkRGVsZXRlck5vSWRlbnRpZmllci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlm
aWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6Okhl
YXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJ
c0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBK
U0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05v
dFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lk
ZW50aWZpZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TmFt
ZWREZWxldGVyTm9JZGVudGlmaWVyPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmgJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0
ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBj
b25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAo
SlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0
T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2Vw
dHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6
Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlO
YW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJv
cGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2
ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0
TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24oSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2Jh
bE9iamVjdCYsIFJlZjxUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24+JiYpOwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuaAko
cmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3Ry
dWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMg
dm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5j
ZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0
aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlT
bG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9w
ZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dl
dE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKIHByb3Rl
Y3RlZDoKICAgICBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcihKU0M6OlN0cnVjdHVy
ZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmll
cj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpT
Qzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9i
amVjdCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFu
YWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1w
dXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90
QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
SlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6
SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVy
byB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRl
eGVkR2V0dGVyKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5h
bWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRHZXR0ZXJDYWxsV2l0aC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5oCSh3
b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpK
U1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6
ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVG
b3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6
OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRl
cmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwg
SlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3Bl
cnR5TmFtZXM7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aChKU0M6
OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3ROYW1lZEdldHRlckNhbGxX
aXRoPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlm
aWVyLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5oCSh3b3JraW5nIGNvcHkp
CkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENv
bnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3Rh
dGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFi
c2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5M
ZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6
T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3Bl
cnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3du
UHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiBw
cm90ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIoSlNDOjpTdHJ1Y3R1
cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXI+
JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlm
aWVyLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0
Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBz
dGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5
QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hl
bkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlND
OjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJv
cGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsK
IHByb3RlY3RlZDoKICAgICBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyKEpTQzo6U3Ry
dWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXI+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0
Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBz
dGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5
QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hl
bkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlND
OjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJv
cGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsK
IHByb3RlY3RlZDoKICAgICBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcihKU0M6OlN0cnVj
dHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmll
cj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24uaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaAko
d29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6
SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVj
dCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5
emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJl
Rm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlND
OjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50
ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8
IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9w
ZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb24oSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpT
Qzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5
U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJv
cGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5j
ZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0
aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxU
ZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZN
JiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVI
ZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6
OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRl
cmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwg
SlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3Bl
cnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZv
clByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgogICAgIEpT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUds
b2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcj4mJik7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJBbmRTZXR0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3Qg
SlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2Vs
bCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blBy
b3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0
T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5
QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hl
bkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlND
OjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUds
b2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRl
cj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0
aE92ZXJyaWRlQnVpbHRpbnMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVp
bHRpbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0ds
b2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6
SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xv
dElzSW1wdXJlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5X
aGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBK
U0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Q
cm9wZXJ0eVNsb3RJc0ltcHVyZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5
SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgogICAg
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMoSlNDOjpTdHJ1Y3R1cmUqLCBK
U0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlu
cz4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5m
b3JnYWJsZVByb3BlcnRpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29u
c3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpT
Q2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93
blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpIYXNTdGF0aWNQ
cm9wZXJ0eVRhYmxlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2
ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRP
d25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SGFzU3RhdGlj
UHJvcGVydHlUYWJsZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhF
dmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90
IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgogICAgIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzKEpTQzo6U3RydWN0dXJlKiwgSlNE
T01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0
aWVzPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWls
dGlucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRl
QnVpbHRpbnMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVz
QW5kT3ZlcnJpZGVCdWlsdGlucy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBj
b25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAo
SlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0
T3duUHJvcGVydHlTbG90SXNJbXB1cmUgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGUgfCBK
U0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05v
dFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElz
SW1wdXJlIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlIHwgSlNDOjpJbnRlcmNlcHRzR2V0
T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7
CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRp
ZXNBbmRPdmVycmlkZUJ1aWx0aW5zKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3Qm
LCBSZWY8VGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVC
dWlsdGlucz4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAkod29ya2luZyBjb3B5
KQpAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSB0ZXN0
U3RhdGljQ3VzdG9tUHJvbWlzZUZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlJiwgUmVmPERlZmVycmVk
UHJvbWlzZT4mJik7CiAgICAgSlNDOjpKU1ZhbHVlIHRlc3RDdXN0b21SZXR1cm5zT3duUHJvbWlz
ZUZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0
YXRpY1Byb3BlcnR5VGFibGUgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldENhbGxEYXRhIHwg
SlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3Bl
cnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlIHwgSlND
OjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3Ra
ZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRDYWxsRGF0YSB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgog
ICAgIEpTVGVzdE9iaihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRl
c3RPYmo+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmgJKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYs
IGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVh
cChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpH
ZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUgfCBKU0M6OkludGVyY2VwdHNHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsK
IHByb3RlY3RlZDoKICAgICBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zKEpTQzo6U3RydWN0dXJlKiwg
SlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE92ZXJyaWRlQnVpbHRpbnM+JiYpOwogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50
ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBK
U0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBB
bmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRD
YWxsRGF0YSB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElz
Tm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0Q2FsbERhdGEgfCBKU0M6Ok92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdDsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RQbHVnaW5JbnRlcmZhY2UoSlND
OjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0UGx1Z2luSW50ZXJmYWNl
PiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFR5cGVkZWZzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXIm
KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiBwcm90ZWN0ZWQ6CiAgICAgSlNU
ZXN0VHlwZWRlZnMoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0
VHlwZWRlZnM+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJh
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgJ
KHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDMtMjAxOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
Y2xhc3MgUnVudGltZUFycmF5IDogcHVibGljIEpTQXJyYXkgewogcHVibGljOgogICAgIHR5cGVk
ZWYgSlNBcnJheSBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVy
byB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVu
V2hlbkxlbmd0aElzTm90WmVybyB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiAKICAgICBz
dGF0aWMgUnVudGltZUFycmF5KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBCaW5kaW5nczo6QXJy
YXkqIGFycmF5KQogICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21l
dGhvZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhv
ZC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50aW1lTWV0aG9kIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNlOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGE7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0
Q2FsbERhdGE7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgSlNDOjpTdWJzcGFj
ZUFjY2Vzcz4KICAgICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDgsIDIwMDkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBCaW5kaW5ncyB7CiBjbGFzcyBX
RUJDT1JFX0VYUE9SVCBSdW50aW1lT2JqZWN0IDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IEJhc2U7Ci0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5h
bWVzIHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IE92ZXJyaWRlc0dldENh
bGxEYXRhOwogCiAgICAgc3RhdGljIFJ1bnRpbWVPYmplY3QqIGNyZWF0ZShWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBSZWZQdHI8SW5zdGFuY2U+JiYgaW5zdGFuY2UpCiAgICAgewpJbmRl
eDogU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTkzLDcgKzkzLDcgQEAgcHJpdmF0ZToKIGNsYXNzIE9iamNGYWxsYmFj
a09iamVjdEltcCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBKU0Rlc3RydWN0aWJsZU9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGE7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGE7CiAKICAgICBz
dGF0aWMgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBPYmpjSW5zdGFuY2UqIGluc3RhbmNlLCBjb25zdCBT
dHJpbmcmIHByb3BlcnR5TmFtZSkKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
MiBAQAorMjAxOS0wOS0xNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIGNvbnN0ZXhwciBpbnN0ZWFkIG9mIGNvbnN0IGluIHN5bWJvbCBkZWZpbml0aW9ucyB0
aGF0IGFyZSBvYnZpb3VzbHkgY29uc3RleHByLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5oOgorCiAyMDE5LTA5LTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkgZG9lcyBub3QgbmVlZCBzZXNzaW9u
SURzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgTlBSdW50aW1lT2JqZWN0TWFwOwogY2xhc3MgSlNOUE9i
amVjdCBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpT
Qzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzIHwgSlNDOjpPdmVycmlkZXNHZXRDYWxsRGF0YTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Ok92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1l
cyB8IEpTQzo6T3ZlcnJpZGVzR2V0Q2FsbERhdGE7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
ZWxsVHlwZSwgSlNDOjpTdWJzcGFjZUFjY2Vzcz4KICAgICBzdGF0aWMgSlNDOjpJc29TdWJzcGFj
ZSogc3Vic3BhY2VGb3IoSlNDOjpWTSYgdm0pCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxOSBAQAorMjAxOS0wOS0xNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXNlIGNvbnN0ZXhwciBpbnN0ZWFkIG9mIGNvbnN0IGluIHN5bWJvbCBkZWZpbml0aW9u
cyB0aGF0IGFyZSBvYnZpb3VzbHkgY29uc3RleHByLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5jcHA6Cisg
ICAgICAgICogYm1hbGxvYy9Jc29UTFMuaDoKKyAgICAgICAgKiBibWFsbG9jL01hcC5oOgorICAg
ICAgICAqIGJtYWxsb2MvTXV0ZXguY3BwOgorICAgICAgICAoYm1hbGxvYzo6TXV0ZXg6OmxvY2tT
bG93Q2FzZSk6CisgICAgICAgICogYm1hbGxvYy9QZXJUaHJlYWQuaDoKKyAgICAgICAgKiBibWFs
bG9jL1ZlY3Rvci5oOgorICAgICAgICAqIGJtYWxsb2MvWm9uZS5oOgorCiAyMDE5LTA5LTEzICBN
YXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBXZSBzaG91bGQgbmV2ZXIg
ZmFpbCB0byBhbGxvY2F0ZSBWQSBmb3IgdGhlIEdpZ2FjYWdlLgpJbmRleDogU291cmNlL2JtYWxs
b2MvYm1hbGxvYy9BdmFpbGFibGVNZW1vcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL2JtYWxsb2MvYm1hbGxvYy9BdmFpbGFibGVNZW1vcnkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01Myw3ICs1Myw3IEBACiAKIG5hbWVzcGFjZSBibWFsbG9jIHsKIAotc3RhdGljIGNvbnN0IHNp
emVfdCBhdmFpbGFibGVNZW1vcnlHdWVzcyA9IDUxMiAqIGJtYWxsb2M6Ok1COworc3RhdGljIGNv
bnN0ZXhwciBzaXplX3QgYXZhaWxhYmxlTWVtb3J5R3Vlc3MgPSA1MTIgKiBibWFsbG9jOjpNQjsK
IAogI2lmIEJPUyhEQVJXSU4pCiBzdGF0aWMgc2l6ZV90IG1lbW9yeVNpemVBY2NvcmRpbmdUb0tl
cm5lbCgpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0lzb1RMUy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvVExTLmgJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvVExTLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw3
ICsxMDksNyBAQCBwcml2YXRlOgogICAgIGNoYXIgbV9kYXRhWzFdOwogCiAjaWYgSEFWRV9QVEhS
RUFEX01BQ0hERVBfSAotICAgIHN0YXRpYyBjb25zdCBwdGhyZWFkX2tleV90IHRsc0tleSA9IF9f
UFRLX0ZSQU1FV09SS19KQVZBU0NSSVBUQ09SRV9LRVkxOworICAgIHN0YXRpYyBjb25zdGV4cHIg
cHRocmVhZF9rZXlfdCB0bHNLZXkgPSBfX1BUS19GUkFNRVdPUktfSkFWQVNDUklQVENPUkVfS0VZ
MTsKICNlbHNlCiAgICAgQkVYUE9SVCBzdGF0aWMgYm9vbCBzX2RpZEluaXRpYWxpemU7CiAgICAg
QkVYUE9SVCBzdGF0aWMgcHRocmVhZF9rZXlfdCBzX3Rsc0tleTsKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvTWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9N
YXAuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9NYXAuaAko
d29ya2luZyBjb3B5KQpAQCAtODAsMTAgKzgwLDEwIEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1pbkNhcGFjaXR5ID0gMTY7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIG1heExvYWQgPSAyOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCByZWhhc2hMb2FkID0gNDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWluTG9hZCA9IDg7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtaW5DYXBhY2l0eSA9IDE2OworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4TG9hZCA9IDI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCByZWhhc2hMb2FkID0gNDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IG1pbkxvYWQgPSA4OwogCiAgICAgYm9vbCBzaG91bGRHcm93KCkgeyByZXR1cm4gbV9rZXlDb3Vu
dCAqIG1heExvYWQgPj0gY2FwYWNpdHkoKTsgfQogICAgIGJvb2wgc2hvdWxkU2hyaW5rKCkgeyBy
ZXR1cm4gbV9rZXlDb3VudCAqIG1pbkxvYWQgPD0gY2FwYWNpdHkoKSAmJiBjYXBhY2l0eSgpID4g
bWluQ2FwYWNpdHk7IH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTXV0ZXguY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTXV0ZXguY3BwCShyZXZpc2lvbiAy
NDk5NzYpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL011dGV4LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzYsNyArMzYsNyBAQCB2b2lkIE11dGV4Ojpsb2NrU2xvd0Nhc2UoKQogICAgIC8vIFRo
ZSBsb25nZXN0IGNyaXRpY2FsIHNlY3Rpb24gaW4gYm1hbGxvYyBpcyBtdWNoIHNob3J0ZXIgdGhh
biB0aGUKICAgICAvLyB0aW1lIGl0IHRha2VzIHRvIG1ha2UgYSBzeXN0ZW0gY2FsbCB0byB5aWVs
ZCB0byB0aGUgT1Mgc2NoZWR1bGVyLgogICAgIC8vIFNvLCB3ZSB0cnkgYWdhaW4gYSBsb3QgYmVm
b3JlIHdlIHlpZWxkLgotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYUxvdCA9IDI1NjsKKyAgICBz
dGF0aWMgY29uc3RleHByIHNpemVfdCBhTG90ID0gMjU2OwogICAgIAogICAgIGlmICghbV9pc1Nw
aW5uaW5nLmV4Y2hhbmdlKHRydWUpKSB7CiAgICAgICAgIGF1dG8gY2xlYXIgPSBtYWtlU2NvcGVF
eGl0KFsmXSB7IG1faXNTcGlubmluZy5zdG9yZShmYWxzZSk7IH0pOwpJbmRleDogU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9QZXJUaHJlYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL1BlclRocmVhZC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL1BlclRocmVhZC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBQZXJUaHJlYWRTdG8KIC8vIEZvciBub3csIHdlIG9ubHkg
c3VwcG9ydCBQZXJUaHJlYWQ8UGVySGVhcEtpbmQ8Q2FjaGU+Pi4gV2UgY2FuIGV4cGFuZCB0byBv
dGhlciB0eXBlcyBieQogLy8gdXNpbmcgbW9yZSBrZXlzLgogdGVtcGxhdGU8PiBzdHJ1Y3QgUGVy
VGhyZWFkU3RvcmFnZTxQZXJIZWFwS2luZDxDYWNoZT4+IHsKLSAgICBzdGF0aWMgY29uc3QgcHRo
cmVhZF9rZXlfdCBrZXkgPSBfX1BUS19GUkFNRVdPUktfSkFWQVNDUklQVENPUkVfS0VZMDsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHB0aHJlYWRfa2V5X3Qga2V5ID0gX19QVEtfRlJBTUVXT1JLX0pB
VkFTQ1JJUFRDT1JFX0tFWTA7CiAKICAgICBzdGF0aWMgdm9pZCogZ2V0KCkKICAgICB7CkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZlY3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvVmVjdG9yLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvVmVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDggKzcyLDggQEAgcHVi
bGljOgogICAgIHZvaWQgc2hyaW5rVG9GaXQoKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgY29u
c3Qgc2l6ZV90IGdyb3dGYWN0b3IgPSAyOwotICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc2hyaW5r
RmFjdG9yID0gNDsKKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBncm93RmFjdG9yID0gMjsK
KyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBzaHJpbmtGYWN0b3IgPSA0OwogICAgIHN0YXRp
YyBzaXplX3QgaW5pdGlhbENhcGFjaXR5KCkgeyByZXR1cm4gdm1QYWdlU2l6ZSgpIC8gc2l6ZW9m
KFQpOyB9CiAKICAgICB2b2lkIGdyb3dDYXBhY2l0eSgpOwpJbmRleDogU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9ab25lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9ab25l
LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvWm9uZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIENodW5rOwogY2xhc3MgWm9uZSA6
IHB1YmxpYyBtYWxsb2Nfem9uZV90IHsKIHB1YmxpYzoKICAgICAvLyBFbm91Z2ggY2FwYWNpdHkg
dG8gdHJhY2sgYSA2NEdCIGhlYXAsIHNvIHByb2JhYmx5IGVub3VnaCBmb3IgYW55dGhpbmcuCi0g
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBjYXBhY2l0eSA9IDIwNDg7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBzaXplX3QgY2FwYWNpdHkgPSAyMDQ4OwogCiAgICAgWm9uZShzdGQ6OmxvY2tfZ3VhcmQ8
TXV0ZXg+Jik7CiAgICAgWm9uZSh0YXNrX3QsIG1lbW9yeV9yZWFkZXJfdCwgdm1fYWRkcmVzc190
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378985</attachid>
            <date>2019-09-17 13:45:12 -0700</date>
            <delta_ts>2019-09-17 14:04:13 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-201879.patch</filename>
            <type>text/plain</type>
            <size>573139</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4OSBA
QAorMjAxOS0wOS0xNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAg
VXNlIGNvbnN0ZXhwciBpbnN0ZWFkIG9mIGNvbnN0IGluIHN5bWJvbCBkZWZpbml0aW9ucyB0aGF0
IGFyZSBvYnZpb3VzbHkgY29uc3RleHByLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAxODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgY29uc3QgbWF5IHJlcXVpcmUgZXh0ZXJuYWwgc3RvcmFnZSAgKGF0
IHRoZSBjb21waWxlcidzIHdoaW0pIHRob3VnaCB0aGVzZQorICAgICAgICBjdXJyZW50bHkgZG8g
bm90LiAgY29uc3RleHByIG1ha2VzIGl0IGNsZWFyIHRoYXQgdGhlIHZhbHVlIGlzIGEgbGl0ZXJh
bCBjb25zdGFudAorICAgICAgICB0aGF0IGNhbiBiZSBpbmxpbmVkLiAgSW4gbW9zdCBjYXNlcyBp
biB0aGUgY29kZSwgd2hlbiB3ZSBzYXkgc3RhdGljIGNvbnN0LCB3ZQorICAgICAgICBhY3R1YWxs
eSBtZWFuIHN0YXRpYyBjb25zdGV4cHIuICBJJ20gY2hhbmdpbmcgdGhlIGNvZGUgdG8gcmVmbGVj
dCB0aGlzLgorCisgICAgICAgICogQVBJL0pTQVBJVmFsdWVXcmFwcGVyLmg6CisgICAgICAgICog
QVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2Jq
ZWN0Lmg6CisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAgICogQVBJL0pT
V3JhcHBlck1hcC5tbToKKyAgICAgICAgKiBBUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNw
cDoKKyAgICAgICAgKiBBUEkvdGVzdHMvVHlwZWRBcnJheUNUZXN0LmNwcDoKKyAgICAgICAgKiBB
UEkvdGVzdHMvdGVzdGFwaS5tbToKKyAgICAgICAgKHRlc3RPYmplY3RpdmVDQVBJTWFpbik6Cisg
ICAgICAgICogS2V5d29yZExvb2t1cEdlbmVyYXRvci5weToKKyAgICAgICAgKFRyaWUucHJpbnRB
c0MpOgorICAgICAgICAqIGFzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oOgorICAgICAgICAqIGFz
c2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvQXNzZW1ibGVy
Q29tbW9uLmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAg
ICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk02NEUuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5oOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaDoK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Lmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
OjphYnNEb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6bmVn
YXRlRG91YmxlKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaDoK
KyAgICAgICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgICogYjMvQjNCYW5r
Lmg6CisgICAgICAgICogYjMvQjNDaGVja1NwZWNpYWwuaDoKKyAgICAgICAgKiBiMy9CM0R1cGxp
Y2F0ZVRhaWxzLmNwcDoKKyAgICAgICAgKiBiMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Np
b25zLmNwcDoKKyAgICAgICAgKiBiMy9CM0ZpeFNTQS5jcHA6CisgICAgICAgICogYjMvQjNGb2xk
UGF0aENvbnN0YW50cy5jcHA6CisgICAgICAgICogYjMvQjNJbmZlclN3aXRjaGVzLmNwcDoKKyAg
ICAgICAgKiBiMy9CM0tpbmQuaDoKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAg
ICAgICAqIGIzL0IzTmF0aXZlVHJhaXRzLmg6CisgICAgICAgICogYjMvQjNSZWR1Y2VEb3VibGVU
b0Zsb2F0LmNwcDoKKyAgICAgICAgKiBiMy9CM1JlZHVjZUxvb3BTdHJlbmd0aC5jcHA6CisgICAg
ICAgICogYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHA6CisgICAgICAgICogYjMvQjNWYWx1ZUtleS5o
OgorICAgICAgICAqIGIzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVyc0J5R3JhcGhDb2xvcmluZy5j
cHA6CisgICAgICAgICogYjMvYWlyL0FpckFsbG9jYXRlU3RhY2tCeUdyYXBoQ29sb3JpbmcuY3Bw
OgorICAgICAgICAqIGIzL2Fpci9BaXJBcmcuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyQ0NhbGxT
cGVjaWFsLmg6CisgICAgICAgICogYjMvYWlyL0FpckVtaXRTaHVmZmxlLmNwcDoKKyAgICAgICAg
KiBiMy9haXIvQWlyRml4T2J2aW91c1NwaWxscy5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckZv
cm1UYWJsZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJMb3dlckFmdGVyUmVnQWxsb2MuY3BwOgor
ICAgICAgICAqIGIzL2Fpci9BaXJQcmludFNwZWNpYWwuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
U3RhY2tBbGxvY2F0aW9uLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWlyVG1wLmg6CisgICAgICAg
ICogYjMvdGVzdGIzXzYuY3BwOgorICAgICAgICAodGVzdEludGVycHJldGVyKToKKyAgICAgICAg
KiBieXRlY29kZS9BY2Nlc3NDYXNlLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua1N0
YXR1cy5jcHA6CisgICAgICAgICogYnl0ZWNvZGUvQ2FsbFZhcmlhbnQuaDoKKyAgICAgICAgKiBi
eXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlT3JpZ2luLmg6Cisg
ICAgICAgICogYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaDoKKyAgICAgICAgKiBieXRlY29kZS9E
aXJlY3RFdmFsQ29kZUNhY2hlLmg6CisgICAgICAgICogYnl0ZWNvZGUvRXhlY3V0YWJsZVRvQ29k
ZUJsb2NrRWRnZS5oOgorICAgICAgICAqIGJ5dGVjb2RlL0dldHRlclNldHRlckFjY2Vzc0Nhc2Uu
Y3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0xhenlPcGVyYW5kVmFsdWVQcm9maWxlLmg6CisgICAg
ICAgICogYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb24uaDoKKyAgICAgICAgKiBieXRl
Y29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHA6CisgICAgICAgICogYnl0ZWNvZGUv
UG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL1Byb3BlcnR5Q29uZGl0
aW9uLmg6CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaDoKKyAgICAgICAgKiBi
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHA6CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5r
ZWRDb2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6dHlwZVBy
b2ZpbGVyRXhwcmVzc2lvbkluZm9Gb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgICogYnl0ZWNv
ZGUvVW5saW5rZWRDb2RlQmxvY2suaDoKKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZEV2YWxD
b2RlQmxvY2suaDoKKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2Nr
Lmg6CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaDoKKyAg
ICAgICAgKiBieXRlY29kZS9VbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2suaDoKKyAgICAg
ICAgKiBieXRlY29kZS9VbmxpbmtlZFByb2dyYW1Db2RlQmxvY2suaDoKKyAgICAgICAgKiBieXRl
Y29kZS9WYWx1ZVByb2ZpbGUuaDoKKyAgICAgICAgKiBieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIu
aDoKKyAgICAgICAgKiBieXRlY29kZS9XYXRjaHBvaW50Lmg6CisgICAgICAgICogYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0xhYmVsLmg6
CisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6
OlRoaXNOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9SZWdpc3Rl
cklELmg6CisgICAgICAgICogZGVidWdnZXIvQnJlYWtwb2ludC5oOgorICAgICAgICAqIGRlYnVn
Z2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmNwcDoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlclBy
aW1pdGl2ZXMuaDoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlclNjb3BlLmg6CisgICAgICAg
ICogZGZnL0RGR0Fic3RyYWN0SGVhcC5oOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFZhbHVl
Lmg6CisgICAgICAgICogZGZnL0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2UuY3BwOgorICAg
ICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgICogZGZnL0RGR0NTRVBo
YXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHQ29tbW9uLmg6CisgICAgICAgICogZGZnL0RGR0Nv
bXBpbGF0aW9uS2V5Lmg6CisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRHbG9iYWxQcm9wZXJ0eS5o
OgorICAgICAgICAqIGRmZy9ERkdFZGdlRG9taW5hdGVzLmg6CisgICAgICAgICogZGZnL0RGR0Vw
b2NoLmg6CisgICAgICAgICogZGZnL0RGR0ZvckFsbEtpbGxzLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6Zm9yQWxsS2lsbGVkTm9kZXNBdE5vZGVJbmRleCk6CisgICAgICAgICogZGZnL0RGR0dyYXBo
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6aXNMaXZlSW5CeXRlY29kZSk6CisgICAg
ICAgICogZGZnL0RGR0hlYXBMb2NhdGlvbi5oOgorICAgICAgICAqIGRmZy9ERkdJblBsYWNlQWJz
dHJhY3RTdGF0ZS5jcHA6CisgICAgICAgICogZGZnL0RGR0ludGVnZXJDaGVja0NvbWJpbmluZ1Bo
YXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2Uu
Y3BwOgorICAgICAgICAqIGRmZy9ERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmNw
cDoKKyAgICAgICAgKiBkZmcvREZHTElDTVBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHTGF6
eU5vZGUuaDoKKyAgICAgICAgKiBkZmcvREZHTWluaWZpZWRJRC5oOgorICAgICAgICAqIGRmZy9E
RkdNb3ZIaW50UmVtb3ZhbFBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHTm9kZUZsb3dQcm9q
ZWN0aW9uLmg6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RG
R09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdQaGFu
dG9tSW5zZXJ0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdQcm9tb3RlZEhlYXBMb2Nh
dGlvbi5oOgorICAgICAgICAqIGRmZy9ERkdQcm9wZXJ0eVR5cGVLZXkuaDoKKyAgICAgICAgKiBk
ZmcvREZHUHVyZVZhbHVlLmg6CisgICAgICAgICogZGZnL0RGR1B1dFN0YWNrU2lua2luZ1BoYXNl
LmNwcDoKKyAgICAgICAgKiBkZmcvREZHUmVnaXN0ZXJCYW5rLmg6CisgICAgICAgICogZGZnL0RG
R1NTQUNvbnZlcnNpb25QaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR1NTQUxvd2VyaW5nUGhh
c2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEb3VibGVSZXApOgorICAgICAgICAoSlND
OjpERkc6OmNvbXBpbGVDbGFtcERvdWJsZVRvQnl0ZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFJvdW5kaW5nKToKKyAgICAgICAgKEpTQzo6REZHOjpj
b21waWxlQXJpdGhQb3dJbnRlZ2VyRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlQXJpdGhQb3cpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjplbWl0QmluYXJ5U3dpdGNoU3RyaW5nUmVjdXJzZSk6CisgICAgICAgICogZGZnL0RG
R1N0YWNrTGF5b3V0UGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTdG9yZUJhcnJpZXJJbnNl
cnRpb25QaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2Uu
Y3BwOgorICAgICAgICAqIGRmZy9ERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmg6CisgICAgICAg
ICogZGZnL0RGR1ZhcmFyZ3NGb3J3YXJkaW5nUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdW
YXJpYWJsZUV2ZW50U3RyZWFtLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUV2ZW50
U3RyZWFtOjpyZWNvbnN0cnVjdCBjb25zdCk6CisgICAgICAgICogZGZnL0RGR1dhdGNocG9pbnRD
b2xsZWN0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bj
b2RlLmg6CisgICAgICAgICogZnRsL0ZUTExvY2F0aW9uLmg6CisgICAgICAgICogZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNv
bXBpbGVBcml0aFJhbmRvbSk6CisgICAgICAgICogZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHA6Cisg
ICAgICAgICogZnRsL0ZUTFNsb3dQYXRoQ2FsbEtleS5oOgorICAgICAgICAqIGhlYXAvQ2VsbENv
bnRhaW5lci5oOgorICAgICAgICAqIGhlYXAvQ2VsbFN0YXRlLmg6CisgICAgICAgICogaGVhcC9D
b25zZXJ2YXRpdmVSb290cy5oOgorICAgICAgICAqIGhlYXAvR0NTZWdtZW50ZWRBcnJheS5oOgor
ICAgICAgICAqIGhlYXAvSGFuZGxlQmxvY2suaDoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgor
ICAgICAgICAoSlNDOjpIZWFwOjp1cGRhdGVBbGxvY2F0aW9uTGltaXRzKToKKyAgICAgICAgKiBo
ZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL0hlYXBTbmFwc2hvdC5oOgorICAgICAgICAqIGhl
YXAvSGVhcFV0aWwuaDoKKyAgICAgICAgKEpTQzo6SGVhcFV0aWw6OmZpbmRHQ09iamVjdFBvaW50
ZXJzRm9yTWFya2luZyk6CisgICAgICAgICogaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwOgor
ICAgICAgICAqIGhlYXAvTGFyZ2VBbGxvY2F0aW9uLmg6CisgICAgICAgICogaGVhcC9NYXJrZWRC
bG9jay5jcHA6CisgICAgICAgICogaGVhcC9TdHJvbmcuaDoKKyAgICAgICAgKiBoZWFwL1Zpc2l0
UmFjZUtleS5oOgorICAgICAgICAqIGhlYXAvV2Vhay5oOgorICAgICAgICAqIGhlYXAvV2Vha0Js
b2NrLmg6CisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Lmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZS5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9KU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNw
ZWN0b3JSdW50aW1lQWdlbnQ6OmdldFJ1bnRpbWVUeXBlc0ZvclZhcmlhYmxlc0F0T2Zmc2V0cyk6
CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfcHJvdG9j
b2xfdHlwZXNfaGVhZGVyLnB5OgorICAgICAgICAoQ3BwUHJvdG9jb2xUeXBlc0hlYWRlckdlbmVy
YXRvci5fZ2VuZXJhdGVfdmVyc2lvbnMpOgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rl
c3RzL2dlbmVyaWMvZXhwZWN0ZWQvdmVyc2lvbi5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnRl
cnByZXRlci9JbnRlcnByZXRlci5oOgorICAgICAgICAqIGludGVycHJldGVyL1NoYWRvd0NoaWNr
ZW4uY3BwOgorICAgICAgICAqIGppdC9CaW5hcnlTd2l0Y2guY3BwOgorICAgICAgICAqIGppdC9D
YWxsRnJhbWVTaHVmZmxlci5oOgorICAgICAgICAqIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmg6
CisgICAgICAgICogaml0L0ZQUkluZm8uaDoKKyAgICAgICAgKiBqaXQvR1BSSW5mby5oOgorICAg
ICAgICAqIGppdC9JQ1N0YXRzLmg6CisgICAgICAgICogaml0L0pJVFRodW5rcy5oOgorICAgICAg
ICAqIGppdC9SZWcuaDoKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJTZXQuaDoKKyAgICAgICAgKiBq
aXQvVGVtcFJlZ2lzdGVyU2V0Lmg6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKiBwYXJz
ZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAqIHBh
cnNlci9Tb3VyY2VDb2RlS2V5Lmg6CisgICAgICAgICogcGFyc2VyL1N5bnRheENoZWNrZXIuaDoK
KyAgICAgICAgKiBwYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5oOgorICAgICAgICAqIHByb2Zp
bGVyL1Byb2ZpbGVyT3JpZ2luLmg6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW5T
dGFjay5oOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyVUlELmg6CisgICAgICAgICogcnVu
dGltZS9BYnN0cmFjdE1vZHVsZVJlY29yZC5jcHA6CisgICAgICAgICogcnVudGltZS9BcnJheUJ1
ZmZlck5ldXRlcmluZ1dhdGNocG9pbnRTZXQuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29u
c3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29udmVudGlvbnMuaDoKKyAgICAg
ICAgKiBydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1l
L0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6c2V0TGVuZ3RoKToKKyAgICAgICAg
KiBydW50aW1lL0FzeW5jRnJvbVN5bmNJdGVyYXRvclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvQXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRp
bWUvQXN5bmNHZW5lcmF0b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0FzeW5jSXRl
cmF0b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0F0b21pY3NPYmplY3QuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvQmlnSW50Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1l
L0JpZ0ludFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5o
OgorICAgICAgICAqIHJ1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGlt
ZS9Db2RlQ2FjaGUuaDoKKyAgICAgICAgKiBydW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuaDoK
KyAgICAgICAgKiBydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oOgorICAgICAgICAqIHJ1bnRp
bWUvRGF0ZUNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmg6
CisgICAgICAgICogcnVudGltZS9EZWZpbmVQcm9wZXJ0eUF0dHJpYnV0ZXMuaDoKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9FdmFsRXhlY3V0
YWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uLmg6CisgICAgICAgICogcnVudGlt
ZS9FeGNlcHRpb25IZWxwZXJzLmNwcDoKKyAgICAgICAgKEpTQzo6aW52YWxpZFBhcmFtZXRlcklu
U291cmNlQXBwZW5kZXIpOgorICAgICAgICAoSlNDOjppbnZhbGlkUGFyYW1ldGVySW5zdGFuY2Vv
ZlNvdXJjZUFwcGVuZGVyKToKKyAgICAgICAgKiBydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaDoK
KyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGVCYXNlLmg6CisgICAgICAgICogcnVudGltZS9G
dW5jdGlvbkV4ZWN1dGFibGUuaDoKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEu
aDoKKyAgICAgICAgKiBydW50aW1lL0dlbmVyYXRvclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvR2VuZXJpY0FyZ3VtZW50cy5oOgorICAgICAgICAqIHJ1bnRpbWUvR2VuZXJpY09mZnNl
dC5oOgorICAgICAgICAqIHJ1bnRpbWUvR2V0UHV0SW5mby5oOgorICAgICAgICAqIHJ1bnRpbWUv
R2V0dGVyU2V0dGVyLmg6CisgICAgICAgICogcnVudGltZS9HbG9iYWxFeGVjdXRhYmxlLmg6Cisg
ICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmg6CisgICAgICAgICogcnVudGltZS9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmg6Cisg
ICAgICAgICogcnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50
aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9J
bnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxOdW1i
ZXJGb3JtYXRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE51bWJlckZvcm1h
dFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5oOgorICAgICAgICAq
IHJ1bnRpbWUvSW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1l
L0ludGxQbHVyYWxSdWxlc1Byb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSXRlcmF0b3JQ
cm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAgICAoSlND
OjpKU0FycmF5Ojp0cnlDcmVhdGVVbmluaXRpYWxpemVkUmVzdHJpY3RlZCk6CisgICAgICAgICog
cnVudGltZS9KU0FycmF5Lmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVyLmg6Cisg
ICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNCaWdJbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKiBy
dW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJG
dW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNEYXRhVmlldy5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNEZXN0cnVj
dGlibGVPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTRml4ZWRBcnJheS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXcuaDoKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50Lmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNJbW11dGFibGVCdXR0ZXJmbHkuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IuaDoKKyAgICAgICAg
KiBydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaDoKKyAgICAgICAgKiBydW50aW1l
L0pTSW50ZXJuYWxQcm9taXNlUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9KU0xleGlj
YWxFbnZpcm9ubWVudC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVFbnZpcm9ubWVudC5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVMb2FkZXIuaDoKKyAgICAgICAgKiBydW50aW1l
L0pTTW9kdWxlTmFtZXNwYWNlT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU05vbkRlc3Ry
dWN0aWJsZVByb3h5Lmg6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL0pTT05PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6
CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNQcm9taXNlRGVmZXJyZWQuaDoKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZVBy
b3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmg6
CisgICAgICAgICogcnVudGltZS9KU1Byb3h5Lmg6CisgICAgICAgICogcnVudGltZS9KU1Njb3Bl
Lmg6CisgICAgICAgICogcnVudGltZS9KU1NjcmlwdEZldGNoUGFyYW1ldGVycy5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNTY3JpcHRGZXRjaGVyLmg6CisgICAgICAgICogcnVudGltZS9KU1NlZ21l
bnRlZFZhcmlhYmxlT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU1NvdXJjZUNvZGUuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTU3Ry
aW5nLmg6CisgICAgICAgICogcnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0Lmg6CisgICAgICAg
ICogcnVudGltZS9KU1RlbXBsYXRlT2JqZWN0RGVzY3JpcHRvci5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNUeXBlSW5mby5oOgorICAgICAgICAqIHJ1bnRpbWUvTWFwUHJvdG90eXBlLmg6CisgICAg
ICAgICogcnVudGltZS9NaW5pbXVtUmVzZXJ2ZWRab25lU2l6ZS5oOgorICAgICAgICAqIHJ1bnRp
bWUvTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUuaDoKKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUV4
ZWN1dGFibGUuaDoKKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUZ1bmN0aW9uLmg6CisgICAgICAg
ICogcnVudGltZS9OYXRpdmVTdGRGdW5jdGlvbkNlbGwuaDoKKyAgICAgICAgKiBydW50aW1lL051
bWJlckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaDoK
KyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1Byb2dyYW1FeGVjdXRhYmxl
Lmg6CisgICAgICAgICogcnVudGltZS9Qcm9taXNlRGVmZXJyZWRUaW1lci5jcHA6CisgICAgICAg
ICogcnVudGltZS9Qcm9wZXJ0eU1hcEhhc2hUYWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvUHJv
cGVydHlOYW1lQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOYW1lQXJyYXk6OmFkZCk6
CisgICAgICAgICogcnVudGltZS9Qcm90b3R5cGVLZXkuaDoKKyAgICAgICAgKiBydW50aW1lL1By
b3h5Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1Byb3h5T2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6UHJveHlPYmplY3Q6OnBlcmZvcm1HZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAg
ICAgICAgKiBydW50aW1lL1Byb3h5UmV2b2tlLmg6CisgICAgICAgICogcnVudGltZS9SZWZsZWN0
T2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHAuaDoKKyAgICAgICAgKiBydW50aW1l
L1JlZ0V4cENhY2hlLmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwS2V5Lmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBP
YmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oOgorICAgICAgICAq
IHJ1bnRpbWUvUmVnRXhwU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU2NvcGVkQXJndW1l
bnRzVGFibGUuaDoKKyAgICAgICAgKiBydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL1NldFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU21hbGxTdHJp
bmdzLmg6CisgICAgICAgICogcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmg6CisgICAgICAg
ICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5n
SXRlcmF0b3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5oOgor
ICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9T
dHJ1Y3R1cmUuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUNoYWluLmg6CisgICAgICAg
ICogcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0
dXJlVHJhbnNpdGlvblRhYmxlLmg6CisgICAgICAgICogcnVudGltZS9TeW1ib2wuaDoKKyAgICAg
ICAgKiBydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9TeW1i
b2xQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1N5bWJvbFRhYmxlLmg6CisgICAgICAg
ICogcnVudGltZS9UZW1wbGF0ZU9iamVjdERlc2NyaXB0b3IuaDoKKyAgICAgICAgKiBydW50aW1l
L1R5cGVQcm9maWxlci5jcHA6CisgICAgICAgICogcnVudGltZS9UeXBlUHJvZmlsZXIuaDoKKyAg
ICAgICAgKiBydW50aW1lL1R5cGVQcm9maWxlckxvZy5jcHA6CisgICAgICAgICogcnVudGltZS9W
YXJPZmZzZXQuaDoKKyAgICAgICAgKiB0ZXN0UmVnRXhwLmNwcDoKKyAgICAgICAgKiB0b29scy9I
ZWFwVmVyaWZpZXIuY3BwOgorICAgICAgICAoSlNDOjpIZWFwVmVyaWZpZXI6OmNoZWNrSWZSZWNv
cmRlZCk6CisgICAgICAgICogdG9vbHMvSlNEb2xsYXJWTS5jcHA6CisgICAgICAgICogd2FzbS9X
YXNtQjNJUkdlbmVyYXRvci5jcHA6CisgICAgICAgICogd2FzbS9XYXNtQkJRUGxhbi5jcHA6Cisg
ICAgICAgICogd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcDoKKyAgICAgICAgKiB3YXNt
L1dhc21GdW5jdGlvblBhcnNlci5oOgorICAgICAgICAqIHdhc20vV2FzbU9NR0Zvck9TUkVudHJ5
UGxhbi5jcHA6CisgICAgICAgICogd2FzbS9XYXNtT01HUGxhbi5jcHA6CisgICAgICAgICogd2Fz
bS9XYXNtUGxhbi5jcHA6CisgICAgICAgICogd2FzbS9XYXNtU2lnbmF0dXJlLmNwcDoKKyAgICAg
ICAgKiB3YXNtL1dhc21TaWduYXR1cmUuaDoKKyAgICAgICAgKiB3YXNtL1dhc21Xb3JrbGlzdC5j
cHA6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5Lmg6CisgICAgICAgICogd2FzbS9q
cy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJs
eUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJs
eUNvbXBpbGVFcnJvclByb3RvdHlwZS5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlG
dW5jdGlvbi5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVj
dG9yLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmg6
CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmg6Cisg
ICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvclByb3RvdHlwZS5oOgorICAgICAg
ICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHdh
c20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dl
YkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2Vt
Ymx5TW9kdWxlUHJvdG90eXBlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRp
bWVFcnJvckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRp
bWVFcnJvclByb3RvdHlwZS5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNv
bnN0cnVjdG9yLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBl
Lmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVRvSlNDYWxsZWUuaDoKKyAgICAgICAg
KiB5YXJyL1lhcnIuaDoKKyAgICAgICAgKiB5YXJyL1lhcnJQYXJzZXIuaDoKKyAgICAgICAgKiB5
YXJyL2dlbmVyYXRlWWFyckNhbm9uaWNhbGl6ZVVuaWNvZGU6CisKIDIwMTktMDktMTcgIFl1c3Vr
ZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBDaGVja0FycmF5
K05vbkFycmF5IGlzIG5vdCBmaWx0ZXJpbmcgb3V0IEFycmF5IGluIEFJCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvS2V5d29yZExvb2t1cEdlbmVyYXRvci5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvS2V5d29yZExvb2t1cEdlbmVyYXRvci5weQkocmV2aXNpb24g
MjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0tleXdvcmRMb29rdXBHZW5lcmF0b3Iu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTE4Nyw3ICsxODcsNyBAQCBjbGFzcyBUcmllOgogICAgICAg
ICBwcmludCgic3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBpc0lkZW50UGFydEluY2x1ZGluZ0Vz
Y2FwZShjb25zdCBMQ2hhciogY29kZSwgY29uc3QgTENoYXIqIGNvZGVFbmQpOyIpCiAgICAgICAg
IHByaW50KCJzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGlzSWRlbnRQYXJ0SW5jbHVkaW5nRXNj
YXBlKGNvbnN0IFVDaGFyKiBjb2RlLCBjb25zdCBVQ2hhciogY29kZUVuZCk7IikKICAgICAgICAg
IyBtYXggbGVuZ3RoICsgMSBzbyB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueSBib3VuZHMgY2hlY2tp
bmcgYXQgYWxsCi0gICAgICAgIHByaW50KCJzdGF0aWMgY29uc3QgaW50IG1heFRva2VuTGVuZ3Ro
ID0gJWQ7IiAlIChzZWxmLm1heExlbmd0aCgpICsgMSkpCisgICAgICAgIHByaW50KCJzdGF0aWMg
Y29uc3RleHByIGludCBtYXhUb2tlbkxlbmd0aCA9ICVkOyIgJSAoc2VsZi5tYXhMZW5ndGgoKSAr
IDEpKQogICAgICAgICBwcmludCgiIikKICAgICAgICAgcHJpbnQoInRlbXBsYXRlIDw+IikKICAg
ICAgICAgcHJpbnQoInRlbXBsYXRlIDxib29sIHNob3VsZENyZWF0ZUlkZW50aWZpZXI+IEFMV0FZ
U19JTkxJTkUgSlNUb2tlblR5cGUgTGV4ZXI8VUNoYXI+OjpwYXJzZUtleXdvcmQoSlNUb2tlbkRh
dGEqIGRhdGEpIikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk2LDcg
KzE5Niw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3Qg
QmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IEpTQzo6TWFzcXVlcmFkZXNBc1VuZGVmaW5lZDsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBKU0M6Ok1hc3F1ZXJhZGVzQXNVbmRlZmluZWQ7CiAKICAgICBzdGF0aWMgTWFzcXVlcmFkZXIq
IGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewpAQCAt
NDkzLDcgKzQ5Myw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAK
LSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFsc2U7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKIAogICAgIERFQ0xB
UkVfSU5GTzsKICAgICBzdGF0aWMgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgc19nbG9i
YWxPYmplY3RNZXRob2RUYWJsZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVn
RXhwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFJlZ0V4cC5j
cHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhw
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IChD
KSAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmln
aHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMTE3LDcgKzExNyw3IEBAIHB1YmxpYzoKIAogICAgIERFQ0xBUkVf
SU5GTzsKIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3RvciA9IGZhbHNlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0b3IgPSBmYWxzZTsKIAogICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTVmFsdWUgcHJvdG90
eXBlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElWYWx1ZVdy
YXBwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJVmFs
dWVXcmFwcGVyLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNBUElWYWx1ZVdyYXBwZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBj
bGFzcyBKU0FQSVZhbHVlV3JhcHBlciBmaW5hbCA6IHB1YmxpYyBKCiAgICAgZnJpZW5kIEpTVmFs
dWUganNBUElWYWx1ZVdyYXBwZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAogICAgIEpTVmFsdWUgdmFsdWUoKSBjb25z
dCB7IHJldHVybiBtX3ZhbHVlLmdldCgpOyB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuaAkocmV2aXNpb24gMjQ5OTc2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlND
YWxsYmFja0NvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsK
IHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IEJhc2U7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IEltcGxlbWVudHNEZWZhdWx0SGFz
SW5zdGFuY2U7CiAKICAgICBzdGF0aWMgSlNDYWxsYmFja0NvbnN0cnVjdG9yKiBjcmVhdGUoRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgSlNPYmplY3RDYWxsQXNDb25zdHJ1Y3RvckNh
bGxiYWNrIGNhbGxiYWNrKSAKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3QuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMiw3
ICsxMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIFBhcmVudCBCYXNl
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgUHJvaGliaXRzUHJvcGVydHlDYWNoaW5nIHwgT3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90IHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxl
bmd0aElzTm90WmVybyB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc0dldFByb3Bl
cnR5TmFtZXMgfCBPdmVycmlkZXNHZXRDYWxsRGF0YTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBQcm9oaWJpdHNQ
cm9wZXJ0eUNhY2hpbmcgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcmNlcHRz
R2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSW1wbGVt
ZW50c0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IE92ZXJyaWRlc0dl
dENhbGxEYXRhOwogICAgIHN0YXRpY19hc3NlcnQoIShTdHJ1Y3R1cmVGbGFncyAmIEltcGxlbWVu
dHNEZWZhdWx0SGFzSW5zdGFuY2UpLCAidXNpbmcgY3VzdG9tSGFzSW5zdGFuY2UiKTsKIAogICAg
IH5KU0NhbGxiYWNrT2JqZWN0KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q29udGV4dFJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NvbnRleHRSZWYuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NTYsNyArNTYsNyBAQAogI2lmIE9TKERBUldJTikKICNpbmNsdWRlIDxtYWNoLW8vZHlsZC5oPgog
Ci1zdGF0aWMgY29uc3QgaW50MzJfdCB3ZWJraXRGaXJzdFZlcnNpb25XaXRoQ29uY3VycmVudEds
b2JhbENvbnRleHRzID0gMHgyMTAwNTAwOyAvLyA1MjguNS4wCitzdGF0aWMgY29uc3RleHByIGlu
dDMyX3Qgd2Via2l0Rmlyc3RWZXJzaW9uV2l0aENvbmN1cnJlbnRHbG9iYWxDb250ZXh0cyA9IDB4
MjEwMDUwMDsgLy8gNTI4LjUuMAogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0JKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUs
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00NiwxMSArNDYsMTEgQEAKIAogI2lmIFBMQVRGT1JNKEFQUExF
VFYpCiAjZWxzZQotc3RhdGljIGNvbnN0IGludDMyX3QgZmlyc3RKYXZhU2NyaXB0Q29yZVZlcnNp
b25XaXRoSW5pdENvbnN0cnVjdG9yU3VwcG9ydCA9IDB4MjFBMDQwMDsgLy8gNTM4LjQuMAorc3Rh
dGljIGNvbnN0ZXhwciBpbnQzMl90IGZpcnN0SmF2YVNjcmlwdENvcmVWZXJzaW9uV2l0aEluaXRD
b25zdHJ1Y3RvclN1cHBvcnQgPSAweDIxQTA0MDA7IC8vIDUzOC40LjAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotc3RhdGljIGNvbnN0IHVpbnQzMl90IGZpcnN0U0RLVmVyc2lvbldpdGhJbml0
Q29uc3RydWN0b3JTdXBwb3J0ID0gRFlMRF9JT1NfVkVSU0lPTl8xMF8wOworc3RhdGljIGNvbnN0
ZXhwciB1aW50MzJfdCBmaXJzdFNES1ZlcnNpb25XaXRoSW5pdENvbnN0cnVjdG9yU3VwcG9ydCA9
IERZTERfSU9TX1ZFUlNJT05fMTBfMDsKICNlbGlmIFBMQVRGT1JNKE1BQykKLXN0YXRpYyBjb25z
dCB1aW50MzJfdCBmaXJzdFNES1ZlcnNpb25XaXRoSW5pdENvbnN0cnVjdG9yU3VwcG9ydCA9IDB4
QTBBMDA7IC8vIE9TWCAxMC4xMC4wCitzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IGZpcnN0U0RL
VmVyc2lvbldpdGhJbml0Q29uc3RydWN0b3JTdXBwb3J0ID0gMHhBMEEwMDsgLy8gT1NYIDEwLjEw
LjAKICNlbmRpZgogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5jcHAJKHJldmlzaW9uIDI0OTk3NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC00MCwxMSArNDAsMTEgQEAgcHVibGljOgogICAgIGlubGluZSBzaXpl
X3QgbnVtQml0cygpIGNvbnN0IHsgcmV0dXJuIHdvcmRzICogd29yZFNpemU7IH0KIAogcHJpdmF0
ZToKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IFNpemUgPSA0MDk2KjEwOworICAgIHN0YXRpYyBj
b25zdGV4cHIgc2l6ZV90IFNpemUgPSA0MDk2KjEwOwogCi0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHdvcmRTaXplID0gc2l6ZW9mKHVpbnQ4X3QpICogODsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgd29yZHMgPSAoU2l6ZSArIHdvcmRTaXplIC0gMSkgLyB3b3JkU2l6ZTsKLSAgICBzdGF0
aWMgY29uc3QgdWludDhfdCBvbmUgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
d29yZFNpemUgPSBzaXplb2YodWludDhfdCkgKiA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgd29yZHMgPSAoU2l6ZSArIHdvcmRTaXplIC0gMSkgLyB3b3JkU2l6ZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVpbnQ4X3Qgb25lID0gMTsKIAogICAgIHVpbnQ4X3QgYml0c1t3b3Jkc107
CiB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9UeXBlZEFycmF5Q1Rl
c3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvVHlw
ZWRBcnJheUNUZXN0LmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS90ZXN0cy9UeXBlZEFycmF5Q1Rlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDcgKzQw
LDcgQEAgc3RhdGljIHZvaWQgZnJlZVB0cih2b2lkKiBwdHIsIHZvaWQqKQogICAgIGZyZWUocHRy
KTsKIH0KIAotc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUxlbmd0aHMgPSAzOworc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBudW1MZW5ndGhzID0gMzsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGxlbmd0aHNbbnVtTGVuZ3Roc10gPQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy90ZXN0YXBpLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvdGVzdHMvdGVzdGFwaS5tbQkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQwLDcgKzEz
NDAsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0T2JqZWN0aXZlQ0FQSU1haW4oKQogICAgIH0KIAogICAg
IEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY291bnQg
PSAxMDA7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgY291bnQgPSAxMDA7CiAg
ICAgICAgIE5TTXV0YWJsZUFycmF5ICphcnJheSA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhD
YXBhY2l0eTpjb3VudF07CiAgICAgICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlNDb250ZXh0
IGFsbG9jXSBpbml0XTsKICAgICAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1i
bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw5ICsxMDMsOSBAQCBjbGFzcyBBUk1UaHVtYklt
bWVkaWF0ZSB7CiAgICAgZnJpZW5kIGNsYXNzIEFSTXY3QXNzZW1ibGVyOwogCiAgICAgdHlwZWRl
ZiB1aW50OF90IFRodW1iSW1tZWRpYXRlVHlwZTsKLSAgICBzdGF0aWMgY29uc3QgVGh1bWJJbW1l
ZGlhdGVUeXBlIFR5cGVJbnZhbGlkID0gMDsKLSAgICBzdGF0aWMgY29uc3QgVGh1bWJJbW1lZGlh
dGVUeXBlIFR5cGVFbmNvZGVkID0gMTsKLSAgICBzdGF0aWMgY29uc3QgVGh1bWJJbW1lZGlhdGVU
eXBlIFR5cGVVSW50MTYgPSAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgVGh1bWJJbW1lZGlhdGVU
eXBlIFR5cGVJbnZhbGlkID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIFRodW1iSW1tZWRpYXRl
VHlwZSBUeXBlRW5jb2RlZCA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciBUaHVtYkltbWVkaWF0
ZVR5cGUgVHlwZVVJbnQxNiA9IDI7CiAKICAgICB0eXBlZGVmIHVuaW9uIHsKICAgICAgICAgaW50
MTZfdCBhc0ludDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1i
bGVyQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9Bc3NlbWJsZXJCdWZmZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTIsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC02OCw3ICs2OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgQXNzZW1ibGVy
RGF0YSB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFzc2VtYmxlckRhdGEpOwotICAg
ICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IElubGluZUNhcGFjaXR5ID0gMTI4OworICAgICAgICBz
dGF0aWMgY29uc3RleHByIHNpemVfdCBJbmxpbmVDYXBhY2l0eSA9IDEyODsKICAgICBwdWJsaWM6
CiAgICAgICAgIEFzc2VtYmxlckRhdGEoKQogICAgICAgICAgICAgOiBtX2J1ZmZlcihtX2lubGlu
ZUJ1ZmZlcikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1ibGVy
Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9B
c3NlbWJsZXJDb21tb24uaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yODIsNyArMjgyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIGltbU4gPDwgMTIgfCBp
bW1yIDw8IDYgfCBpbW1zOwogICAgIH0KIAotICAgIHN0YXRpYyBjb25zdCBpbnQgSW52YWxpZExv
Z2ljYWxJbW1lZGlhdGUgPSAtMTsKKyAgICBzdGF0aWMgY29uc3RleHByIGludCBJbnZhbGlkTG9n
aWNhbEltbWVkaWF0ZSA9IC0xOwogCiAgICAgaW50IG1fdmFsdWU7CiB9OwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MDMsNyArNTAzLDcgQEAgcHVibGljOgogICAgIHZv
aWQgcmV0RmxvYXQoRlBSZWdpc3RlcklEKSB7IHJldCgpOyB9CiAgICAgdm9pZCByZXREb3VibGUo
RlBSZWdpc3RlcklEKSB7IHJldCgpOyB9CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQmxp
bmRpbmdNb2R1bHVzID0gNjQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBCbGluZGlu
Z01vZHVsdXMgPSA2NDsKICAgICBib29sIHNob3VsZENvbnNpZGVyQmxpbmRpbmcoKQogICAgIHsK
ICAgICAgICAgcmV0dXJuICEocmFuZG9tKCkgJiAoQmxpbmRpbmdNb2R1bHVzIC0gMSkpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsOCAr
MzgsOCBAQCB1c2luZyBBc3NlbWJsZXIgPSBUQVJHRVRfQVNTRU1CTEVSOwogCiBjbGFzcyBNYWNy
b0Fzc2VtYmxlckFSTTY0IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVy
PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUdQUnMgPSAzMjsKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtRlBScyA9IDMyOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbnVtR1BScyA9IDMyOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
bnVtRlBScyA9IDMyOwogICAgIAogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBkYXRh
VGVtcFJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OmlwMDsKICAgICBzdGF0aWMgY29uc3RleHBy
IFJlZ2lzdGVySUQgbWVtb3J5VGVtcFJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OmlwMTsKQEAg
LTUxLDExICs1MSwxMSBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgc3RhdGlj
IGNvbnN0IEFSTTY0UmVnaXN0ZXJzOjpGUFJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIgPSBBUk02
NFJlZ2lzdGVyczo6cTMxOwotICAgIHN0YXRpYyBjb25zdCBBc3NlbWJsZXI6OlNldEZsYWdzIFMg
PSBBc3NlbWJsZXI6OlM7Ci0gICAgc3RhdGljIGNvbnN0IGludDY0X3QgbWFza0hhbGZXb3JkMCA9
IDB4ZmZmZmw7Ci0gICAgc3RhdGljIGNvbnN0IGludDY0X3QgbWFza0hhbGZXb3JkMSA9IDB4ZmZm
ZjAwMDBsOwotICAgIHN0YXRpYyBjb25zdCBpbnQ2NF90IG1hc2tVcHBlcldvcmQgPSAweGZmZmZm
ZmZmMDAwMDAwMDBsOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVJNNjRSZWdpc3RlcnM6OkZQUmVn
aXN0ZXJJRCBmcFRlbXBSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjpxMzE7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBBc3NlbWJsZXI6OlNldEZsYWdzIFMgPSBBc3NlbWJsZXI6OlM7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBpbnQ2NF90IG1hc2tIYWxmV29yZDAgPSAweGZmZmZsOworICAgIHN0YXRp
YyBjb25zdGV4cHIgaW50NjRfdCBtYXNrSGFsZldvcmQxID0gMHhmZmZmMDAwMGw7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBpbnQ2NF90IG1hc2tVcHBlcldvcmQgPSAweGZmZmZmZmZmMDAwMDAwMDBs
OwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgSU5TVFJVQ1RJT05fU0laRSA9IDQ7CiAK
QEAgLTc1LDggKzc1LDggQEAgcHVibGljOgogICAgIHR5cGVkZWYgQXNzZW1ibGVyOjpKdW1wTGlu
a1R5cGUgSnVtcExpbmtUeXBlOwogICAgIHR5cGVkZWYgQXNzZW1ibGVyOjpDb25kaXRpb24gQ29u
ZGl0aW9uOwogCi0gICAgc3RhdGljIGNvbnN0IEFzc2VtYmxlcjo6Q29uZGl0aW9uIERlZmF1bHRD
b25kaXRpb24gPSBBc3NlbWJsZXI6OkNvbmRpdGlvbkludmFsaWQ7Ci0gICAgc3RhdGljIGNvbnN0
IEFzc2VtYmxlcjo6SnVtcFR5cGUgRGVmYXVsdEp1bXAgPSBBc3NlbWJsZXI6Okp1bXBOb0NvbmRp
dGlvbkZpeGVkU2l6ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIEFzc2VtYmxlcjo6Q29uZGl0aW9u
IERlZmF1bHRDb25kaXRpb24gPSBBc3NlbWJsZXI6OkNvbmRpdGlvbkludmFsaWQ7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBBc3NlbWJsZXI6Okp1bXBUeXBlIERlZmF1bHRKdW1wID0gQXNzZW1ibGVy
OjpKdW1wTm9Db25kaXRpb25GaXhlZFNpemU7CiAKICAgICBWZWN0b3I8TGlua1JlY29yZCwgMCwg
VW5zYWZlVmVjdG9yT3ZlcmZsb3c+JiBqdW1wc1RvTGluaygpIHsgcmV0dXJuIG1fYXNzZW1ibGVy
Lmp1bXBzVG9MaW5rKCk7IH0KICAgICBzdGF0aWMgYm9vbCBjYW5Db21wYWN0KEp1bXBUeXBlIGp1
bXBUeXBlKSB7IHJldHVybiBBc3NlbWJsZXI6OmNhbkNvbXBhY3QoanVtcFR5cGUpOyB9CkBAIC04
Niw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZSA8QXNzZW1ibGVyOjpDb3B5RnVuY3Rp
b24gY29weT4KICAgICBzdGF0aWMgdm9pZCBsaW5rKExpbmtSZWNvcmQmIHJlY29yZCwgdWludDhf
dCogZnJvbSwgY29uc3QgdWludDhfdCogZnJvbUluc3RydWN0aW9uLCB1aW50OF90KiB0bykgeyBy
ZXR1cm4gQXNzZW1ibGVyOjpsaW5rPGNvcHk+KHJlY29yZCwgZnJvbSwgZnJvbUluc3RydWN0aW9u
LCB0byk7IH0KIAotICAgIHN0YXRpYyBjb25zdCBTY2FsZSBTY2FsZVB0ciA9IFRpbWVzRWlnaHQ7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBTY2FsZSBTY2FsZVB0ciA9IFRpbWVzRWlnaHQ7CiAKICAg
ICBzdGF0aWMgYm9vbCBpc0NvbXBhY3RQdHJBbGlnbmVkQWRkcmVzc09mZnNldChwdHJkaWZmX3Qg
dmFsdWUpCiAgICAgewpAQCAtMTM3LDkgKzEzNyw5IEBAIHB1YmxpYzoKICAgICAgICAgRG91Ymxl
TGVzc1RoYW5PckVxdWFsT3JVbm9yZGVyZWQgPSBBc3NlbWJsZXI6OkNvbmRpdGlvbkxFLAogICAg
IH07CiAKLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBzdGFja1BvaW50ZXJSZWdpc3RlciA9
IEFSTTY0UmVnaXN0ZXJzOjpzcDsKLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBmcmFtZVBv
aW50ZXJSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjpmcDsKLSAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCBsaW5rUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6bHI7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBSZWdpc3RlcklEIHN0YWNrUG9pbnRlclJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6
OnNwOworICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBmcmFtZVBvaW50ZXJSZWdpc3Rl
ciA9IEFSTTY0UmVnaXN0ZXJzOjpmcDsKKyAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVySUQg
bGlua1JlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OmxyOwogCiAgICAgLy8gRklYTUU6IEdldCBy
ZWFzb25hYmxlIGltcGxlbWVudGF0aW9ucyBmb3IgdGhlc2UKICAgICBzdGF0aWMgYm9vbCBzaG91
bGRCbGluZEZvclNwZWNpZmljQXJjaCh1aW50MzJfdCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgPj0g
MHgwMGZmZmZmZjsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTTY0RS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NEUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0RS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxl
ci54cGFjZCh0YXJnZXQpOwogICAgIH0KIAotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIElu
dmFsaWRHUFIgID0gc3RhdGljX2Nhc3Q8UmVnaXN0ZXJJRD4oLTEpOworICAgIHN0YXRpYyBjb25z
dGV4cHIgUmVnaXN0ZXJJRCBJbnZhbGlkR1BSICA9IHN0YXRpY19jYXN0PFJlZ2lzdGVySUQ+KC0x
KTsKIAogICAgIGVudW0gY2xhc3MgQ2FsbFNpZ25hdHVyZVR5cGUgewogICAgICAgICBDRnVuY3Rp
b25DYWxsLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTXY3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJz
aXR5IG9mIFN6ZWdlZAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzYsMTUgKzM2LDE1IEBAIG5hbWVz
cGFjZSBKU0MgewogdXNpbmcgQXNzZW1ibGVyID0gVEFSR0VUX0FTU0VNQkxFUjsKIAogY2xhc3Mg
TWFjcm9Bc3NlbWJsZXJBUk12NyA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFzc2Vt
Ymxlcj4gewotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGRhdGFUZW1wUmVnaXN0ZXIgPSBB
Uk1SZWdpc3RlcnM6OmlwOwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGFkZHJlc3NUZW1w
UmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnI2OworICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0
ZXJJRCBkYXRhVGVtcFJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjppcDsKKyAgICBzdGF0aWMgY29u
c3RleHByIFJlZ2lzdGVySUQgYWRkcmVzc1RlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjY7
CiAKLSAgICBzdGF0aWMgY29uc3QgQVJNUmVnaXN0ZXJzOjpGUERvdWJsZVJlZ2lzdGVySUQgZnBU
ZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OmQ3OworICAgIHN0YXRpYyBjb25zdGV4cHIgQVJN
UmVnaXN0ZXJzOjpGUERvdWJsZVJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3Rl
cnM6OmQ3OwogICAgIGlubGluZSBBUk1SZWdpc3RlcnM6OkZQU2luZ2xlUmVnaXN0ZXJJRCBmcFRl
bXBSZWdpc3RlckFzU2luZ2xlKCkgeyByZXR1cm4gQVJNUmVnaXN0ZXJzOjphc1NpbmdsZShmcFRl
bXBSZWdpc3Rlcik7IH0KIAogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1H
UFJzID0gMTY7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUZQUnMgPSAxNjsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUdQUnMgPSAxNjsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIG51bUZQUnMgPSAxNjsKICAgICAKICAgICBNYWNyb0Fzc2VtYmxlckFSTXY3
KCkKICAgICAgICAgOiBtX21ha2VKdW1wUGF0Y2hhYmxlKGZhbHNlKQpAQCAtNTYsOCArNTYsOCBA
QCBwdWJsaWM6CiAgICAgdHlwZWRlZiBBUk12N0Fzc2VtYmxlcjo6SnVtcExpbmtUeXBlIEp1bXBM
aW5rVHlwZTsKICAgICB0eXBlZGVmIEFSTXY3QXNzZW1ibGVyOjpDb25kaXRpb24gQ29uZGl0aW9u
OwogCi0gICAgc3RhdGljIGNvbnN0IEFSTXY3QXNzZW1ibGVyOjpDb25kaXRpb24gRGVmYXVsdENv
bmRpdGlvbiA9IEFSTXY3QXNzZW1ibGVyOjpDb25kaXRpb25JbnZhbGlkOwotICAgIHN0YXRpYyBj
b25zdCBBUk12N0Fzc2VtYmxlcjo6SnVtcFR5cGUgRGVmYXVsdEp1bXAgPSBBUk12N0Fzc2VtYmxl
cjo6SnVtcE5vQ29uZGl0aW9uRml4ZWRTaXplOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVJNdjdB
c3NlbWJsZXI6OkNvbmRpdGlvbiBEZWZhdWx0Q29uZGl0aW9uID0gQVJNdjdBc3NlbWJsZXI6OkNv
bmRpdGlvbkludmFsaWQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBUk12N0Fzc2VtYmxlcjo6SnVt
cFR5cGUgRGVmYXVsdEp1bXAgPSBBUk12N0Fzc2VtYmxlcjo6SnVtcE5vQ29uZGl0aW9uRml4ZWRT
aXplOwogCiAgICAgc3RhdGljIGJvb2wgaXNDb21wYWN0UHRyQWxpZ25lZEFkZHJlc3NPZmZzZXQo
cHRyZGlmZl90IHZhbHVlKQogICAgIHsKQEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAg
fTsKICAgICAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgU2NhbGUgU2NhbGVQdHIgPSBUaW1l
c0ZvdXI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBTY2FsZSBTY2FsZVB0ciA9IFRpbWVzRm91cjsK
IAogICAgIGVudW0gUmVsYXRpb25hbENvbmRpdGlvbiB7CiAgICAgICAgIEVxdWFsID0gQVJNdjdB
c3NlbWJsZXI6OkNvbmRpdGlvbkVRLApAQCAtMTQzLDkgKzE0Myw5IEBAIHB1YmxpYzoKICAgICAg
ICAgRG91YmxlTGVzc1RoYW5PckVxdWFsT3JVbm9yZGVyZWQgPSBBUk12N0Fzc2VtYmxlcjo6Q29u
ZGl0aW9uTEUsCiAgICAgfTsKIAotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHN0YWNrUG9p
bnRlclJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpzcDsKLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCBmcmFtZVBvaW50ZXJSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6ZnA7Ci0gICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVySUQgbGlua1JlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpscjsKKyAgICBz
dGF0aWMgY29uc3RleHByIFJlZ2lzdGVySUQgc3RhY2tQb2ludGVyUmVnaXN0ZXIgPSBBUk1SZWdp
c3RlcnM6OnNwOworICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBmcmFtZVBvaW50ZXJS
ZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6ZnA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3Rl
cklEIGxpbmtSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6bHI7CiAKICAgICAvLyBJbnRlZ2VyIGFy
aXRobWV0aWMgb3BlcmF0aW9uczoKICAgICAvLwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQ29kZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDgsNyArNDA4LDcgQEAgc3RydWN0IE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ckhhc2ggewogICAgIHsKICAgICAgICAgcmV0dXJuIGEgPT0gYjsK
ICAgICB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0
eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiAvLyBNYWNyb0Fzc2VtYmxlckNvZGVSZWY6CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJNSVBTLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE1JUFMgVGVjaG5vbG9naWVzLCBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zOCw4ICszOCw4IEBA
IHVzaW5nIEFzc2VtYmxlciA9IFRBUkdFVF9BU1NFTUJMRVI7CiBjbGFzcyBNYWNyb0Fzc2VtYmxl
ck1JUFMgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIE1JUFNSZWdpc3RlcnM6OkZQUmVnaXN0ZXJJRCBGUFJlZ2lzdGVySUQ7
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUdQUnMgPSAzMjsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgbnVtRlBScyA9IDMyOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
bnVtR1BScyA9IDMyOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtRlBScyA9IDMy
OwogCiAgICAgTWFjcm9Bc3NlbWJsZXJNSVBTKCkKICAgICAgICAgOiBtX2ZpeGVkV2lkdGgoZmFs
c2UpCkBAIC02MSwyMSArNjEsMjEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZ2V0TFNCU2V0
KHYpOwogICAgIH0KIAotICAgIHN0YXRpYyBjb25zdCBTY2FsZSBTY2FsZVB0ciA9IFRpbWVzRm91
cjsKKyAgICBzdGF0aWMgY29uc3RleHByIFNjYWxlIFNjYWxlUHRyID0gVGltZXNGb3VyOwogCiAg
ICAgLy8gRm9yIHN0b3JpbmcgaW1tZWRpYXRlIG51bWJlcgotICAgIHN0YXRpYyBjb25zdCBSZWdp
c3RlcklEIGltbVRlbXBSZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnQwOworICAgIHN0YXRpYyBj
b25zdGV4cHIgUmVnaXN0ZXJJRCBpbW1UZW1wUmVnaXN0ZXIgPSBNSVBTUmVnaXN0ZXJzOjp0MDsK
ICAgICAvLyBGb3Igc3RvcmluZyBkYXRhIGxvYWRlZCBmcm9tIHRoZSBtZW1vcnkKLSAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBkYXRhVGVtcFJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6dDE7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGRhdGFUZW1wUmVnaXN0ZXIgPSBNSVBT
UmVnaXN0ZXJzOjp0MTsKICAgICAvLyBGb3Igc3RvcmluZyBhZGRyZXNzIGJhc2UKLSAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBhZGRyVGVtcFJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6dDc7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIGFkZHJUZW1wUmVnaXN0ZXIgPSBNSVBT
UmVnaXN0ZXJzOjp0NzsKICAgICAvLyBGb3Igc3RvcmluZyBjb21wYXJlIHJlc3VsdAotICAgIHN0
YXRpYyBjb25zdCBSZWdpc3RlcklEIGNtcFRlbXBSZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnQ4
OworICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBjbXBUZW1wUmVnaXN0ZXIgPSBNSVBT
UmVnaXN0ZXJzOjp0ODsKIAogICAgIC8vIEZQIHRlbXAgcmVnaXN0ZXIKLSAgICBzdGF0aWMgY29u
c3QgRlBSZWdpc3RlcklEIGZwVGVtcFJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6ZjE2OworICAg
IHN0YXRpYyBjb25zdGV4cHIgRlBSZWdpc3RlcklEIGZwVGVtcFJlZ2lzdGVyID0gTUlQU1JlZ2lz
dGVyczo6ZjE2OwogCi0gICAgc3RhdGljIGNvbnN0IGludCBNYXhpbXVtQ29tcGFjdFB0ckFsaWdu
ZWRBZGRyZXNzT2Zmc2V0ID0gMHg3RkZGRkZGRjsKKyAgICBzdGF0aWMgY29uc3RleHByIGludCBN
YXhpbXVtQ29tcGFjdFB0ckFsaWduZWRBZGRyZXNzT2Zmc2V0ID0gMHg3RkZGRkZGRjsKIAogICAg
IGVudW0gUmVsYXRpb25hbENvbmRpdGlvbiB7CiAgICAgICAgIEVxdWFsLApAQCAtMTE4LDkgKzEx
OCw5IEBAIHB1YmxpYzoKICAgICAgICAgU2NhbGUKICAgICB9OwogCi0gICAgc3RhdGljIGNvbnN0
IFJlZ2lzdGVySUQgc3RhY2tQb2ludGVyUmVnaXN0ZXIgPSBNSVBTUmVnaXN0ZXJzOjpzcDsKLSAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBmcmFtZVBvaW50ZXJSZWdpc3RlciA9IE1JUFNSZWdp
c3RlcnM6OmZwOwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVybkFkZHJlc3NSZWdp
c3RlciA9IE1JUFNSZWdpc3RlcnM6OnJhOworICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJ
RCBzdGFja1BvaW50ZXJSZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnNwOworICAgIHN0YXRpYyBj
b25zdGV4cHIgUmVnaXN0ZXJJRCBmcmFtZVBvaW50ZXJSZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6
OmZwOworICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCByZXR1cm5BZGRyZXNzUmVnaXN0
ZXIgPSBNSVBTUmVnaXN0ZXJzOjpyYTsKIAogICAgIC8vIEludGVnZXIgYXJpdGhtZXRpYyBvcGVy
YXRpb25zOgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyWDg2LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zMywxMCArMzMsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIE1hY3JvQXNz
ZW1ibGVyWDg2IDogcHVibGljIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtR1BScyA9IDg7Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIG51bUZQUnMgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtR1BS
cyA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1GUFJzID0gODsKICAgICAK
LSAgICBzdGF0aWMgY29uc3QgU2NhbGUgU2NhbGVQdHIgPSBUaW1lc0ZvdXI7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBTY2FsZSBTY2FsZVB0ciA9IFRpbWVzRm91cjsKIAogICAgIHVzaW5nIE1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOjphZGQzMjsKICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlclg4NkNv
bW1vbjo6YW5kMzI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA4LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVy
WDg2Q29tbW9uIDogcHVibGljIEEKIHB1YmxpYzoKICNpZiBDUFUoWDg2XzY0KQogICAgIC8vIFVz
ZSB0aGlzIGRpcmVjdGx5IG9ubHkgaWYgeW91J3JlIG5vdCBnZW5lcmF0aW5nIGNvZGUgd2l0aCBp
dC4KLSAgICBzdGF0aWMgY29uc3QgWDg2UmVnaXN0ZXJzOjpSZWdpc3RlcklEIHNfc2NyYXRjaFJl
Z2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyMTE7CisgICAgc3RhdGljIGNvbnN0ZXhwciBYODZSZWdp
c3RlcnM6OlJlZ2lzdGVySUQgc19zY3JhdGNoUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxMTsK
IAogICAgIC8vIFVzZSB0aGlzIHdoZW4gZ2VuZXJhdGluZyBjb2RlIHNvIHRoYXQgd2UgZ2V0IGVu
Zm9yY2VtZW50IG9mIHRoZSBkaXNhbGxvd2luZyBvZiBzY3JhdGNoIHJlZ2lzdGVyCiAgICAgLy8g
dXNhZ2UuCkBAIC01Miw5ICs1Miw5IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIAogcHJvdGVjdGVk
OgotICAgIHN0YXRpYyBjb25zdCBpbnQgRG91YmxlQ29uZGl0aW9uQml0SW52ZXJ0ID0gMHgxMDsK
LSAgICBzdGF0aWMgY29uc3QgaW50IERvdWJsZUNvbmRpdGlvbkJpdFNwZWNpYWwgPSAweDIwOwot
ICAgIHN0YXRpYyBjb25zdCBpbnQgRG91YmxlQ29uZGl0aW9uQml0cyA9IERvdWJsZUNvbmRpdGlv
bkJpdEludmVydCB8IERvdWJsZUNvbmRpdGlvbkJpdFNwZWNpYWw7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBpbnQgRG91YmxlQ29uZGl0aW9uQml0SW52ZXJ0ID0gMHgxMDsKKyAgICBzdGF0aWMgY29u
c3RleHByIGludCBEb3VibGVDb25kaXRpb25CaXRTcGVjaWFsID0gMHgyMDsKKyAgICBzdGF0aWMg
Y29uc3RleHByIGludCBEb3VibGVDb25kaXRpb25CaXRzID0gRG91YmxlQ29uZGl0aW9uQml0SW52
ZXJ0IHwgRG91YmxlQ29uZGl0aW9uQml0U3BlY2lhbDsKIAogcHVibGljOgogICAgIHR5cGVkZWYg
WDg2QXNzZW1ibGVyOjpYTU1SZWdpc3RlcklEIFhNTVJlZ2lzdGVySUQ7CkBAIC0xMDYsOCArMTA2
LDggQEAgcHVibGljOgogICAgICAgICAhKChYODZBc3NlbWJsZXI6OkNvbmRpdGlvbkUgfCBYODZB
c3NlbWJsZXI6OkNvbmRpdGlvbk5FIHwgWDg2QXNzZW1ibGVyOjpDb25kaXRpb25BIHwgWDg2QXNz
ZW1ibGVyOjpDb25kaXRpb25BRSB8IFg4NkFzc2VtYmxlcjo6Q29uZGl0aW9uQiB8IFg4NkFzc2Vt
Ymxlcjo6Q29uZGl0aW9uQkUpICYgRG91YmxlQ29uZGl0aW9uQml0cyksCiAgICAgICAgIERvdWJs
ZUNvbmRpdGlvbkJpdHNfc2hvdWxkX25vdF9pbnRlcmZlcmVfd2l0aF9YODZBc3NlbWJsZXJfQ29u
ZGl0aW9uX2NvZGVzKTsKIAotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHN0YWNrUG9pbnRl
clJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplc3A7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgZnJhbWVQb2ludGVyUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVicDsKKyAgICBzdGF0aWMg
Y29uc3RleHByIFJlZ2lzdGVySUQgc3RhY2tQb2ludGVyUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6
OmVzcDsKKyAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVySUQgZnJhbWVQb2ludGVyUmVnaXN0
ZXIgPSBYODZSZWdpc3RlcnM6OmVicDsKICAgICAKICAgICBzdGF0aWMgYm9vbCBjYW5CbGluZCgp
IHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBzaG91bGRCbGluZEZvclNwZWNpZmlj
QXJjaCh1aW50MzJfdCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgPj0gMHgwMGZmZmZmZjsgfQpAQCAt
MTEwMyw3ICsxMTAzLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWJzRG91YmxlKEZQUmVnaXN0ZXJJ
RCBzcmMsIEZQUmVnaXN0ZXJJRCBkc3QpCiAgICAgewogICAgICAgICBBU1NFUlQoc3JjICE9IGRz
dCk7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgbmVnYXRpdmVaZXJvQ29uc3RhbnQgPSAt
MC4wOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBuZWdhdGl2ZVplcm9Db25zdGFu
dCA9IC0wLjA7CiAgICAgICAgIGxvYWREb3VibGUoVHJ1c3RlZEltbVB0cigmbmVnYXRpdmVaZXJv
Q29uc3RhbnQpLCBkc3QpOwogICAgICAgICBtX2Fzc2VtYmxlci5hbmRucGRfcnIoc3JjLCBkc3Qp
OwogICAgIH0KQEAgLTExMTEsNyArMTExMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG5lZ2F0ZURv
dWJsZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAg
QVNTRVJUKHNyYyAhPSBkc3QpOwotICAgICAgICBzdGF0aWMgY29uc3QgZG91YmxlIG5lZ2F0aXZl
WmVyb0NvbnN0YW50ID0gLTAuMDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbmVn
YXRpdmVaZXJvQ29uc3RhbnQgPSAtMC4wOwogICAgICAgICBsb2FkRG91YmxlKFRydXN0ZWRJbW1Q
dHIoJm5lZ2F0aXZlWmVyb0NvbnN0YW50KSwgZHN0KTsKICAgICAgICAgbV9hc3NlbWJsZXIueG9y
cGRfcnIoc3JjLCBkc3QpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZf
NjQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDgtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDEwICszNywxMCBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogY2xhc3MgTWFjcm9Bc3NlbWJsZXJYODZfNjQgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1HUFJzID0gMTY7
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUZQUnMgPSAxNjsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIG51bUdQUnMgPSAxNjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIG51bUZQUnMgPSAxNjsKICAgICAKLSAgICBzdGF0aWMgY29uc3QgU2NhbGUgU2NhbGVQdHIg
PSBUaW1lc0VpZ2h0OworICAgIHN0YXRpYyBjb25zdGV4cHIgU2NhbGUgU2NhbGVQdHIgPSBUaW1l
c0VpZ2h0OwogCiAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmFkZDMyOwogICAg
IHVzaW5nIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjphbmQzMjsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTQwMjksNyArNDAyOSw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAg
Y2xhc3MgWDg2SW5zdHJ1Y3Rpb25Gb3JtYXR0ZXIgewotICAgICAgICBzdGF0aWMgY29uc3QgaW50
IG1heEluc3RydWN0aW9uU2l6ZSA9IDE2OworICAgICAgICBzdGF0aWMgY29uc3RleHByIGludCBt
YXhJbnN0cnVjdGlvblNpemUgPSAxNjsKIAogICAgIHB1YmxpYzoKICAgICAgICAgZW51bSBNb2RS
bU1vZGUgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFuay5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0JhbmsuaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFuay5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2
LDcgKzM2LDcgQEAgZW51bSBCYW5rIDogaW50OF90IHsKICAgICBGUAogfTsKIAotc3RhdGljIGNv
bnN0IHVuc2lnbmVkIG51bUJhbmtzID0gMjsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVt
QmFua3MgPSAyOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgogdm9pZCBmb3JFYWNoQmFuayhj
b25zdCBGdW5jJiBmdW5jKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tT
cGVjaWFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tT
cGVjaWFsLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0NoZWNrU3BlY2lhbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQzLDcgKzE0Myw3IEBAIHByaXZh
dGU6CiBzdHJ1Y3QgQ2hlY2tTcGVjaWFsS2V5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhh
c2goY29uc3QgQ2hlY2tTcGVjaWFsOjpLZXkmIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQog
ICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IENoZWNrU3BlY2lhbDo6S2V5JiBhLCBjb25zdCBD
aGVja1NwZWNpYWw6OktleSYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0
IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9Owog
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKQEAgLTE1OCw3ICsxNTgsNyBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBEZWZhdWx0SGFzaDxKU0M6OkIzOjpDCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpCMzo6Q2hl
Y2tTcGVjaWFsOjpLZXk+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6QjM6OkNoZWNrU3Bl
Y2lhbDo6S2V5PiB7CiAgICAgLy8gSSBkb24ndCB3YW50IHRvIHRoaW5rIGFib3V0IHRoaXMgdmVy
eSBoYXJkLCBpdCdzIG5vdCB3b3J0aCBpdC4gSSdtIGEgYmUgY29uc2VydmF0aXZlLgotICAgIHN0
YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFp
bHMuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNE
dXBsaWNhdGVUYWlscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIEIzIHsKIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBCM0R1cGxpY2F0
ZVRhaWxzSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3Rh
dGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogY2xhc3MgRHVwbGljYXRl
VGFpbHMgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWxpbWluYXRlQ29tbW9u
U3ViZXhwcmVzc2lvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcAkocmV2aXNpb24gMjQ5OTc2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lv
bnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEIzIHsKIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBCM0VsaW1pbmF0ZUNvbW1v
blN1YmV4cHJlc3Npb25zSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZh
bHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogLy8gRklY
TUU6IFdlIGNvdWxkIHRyZWF0IFBhdGNocG9pbnRzIHdpdGggYSBub24tZW1wdHkgc2V0IG9mIHJl
YWRzIGFzIGEgIm1lbW9yeSB2YWx1ZSIgYW5kIHNvbWVob3cKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0ZpeFNTQS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzRml4U1NBLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzRml4U1NBLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ5LDcgKzQ5LDcgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiBuYW1lc3BhY2UgewogCiBuYW1lc3BhY2Ug
QjNGaXhTU0FJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Citz
dGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiB2b2lkIGtpbGxEZWFk
VmFyaWFibGVzKFByb2NlZHVyZSYgcHJvYykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNGb2xkUGF0aENvbnN0YW50cy5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogbmFtZXNw
YWNlIHsKIAogbmFtZXNwYWNlIEIzRm9sZFBhdGhDb25zdGFudHNJbnRlcm5hbCB7Ci1zdGF0aWMg
Y29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogfQogCiBjbGFzcyBGb2xkUGF0aENvbnN0YW50cyB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmNwcAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzSW5mZXJTd2l0Y2hlcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIG5h
bWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBCM0luZmVyU3dpdGNoZXNJbnRlcm5hbCB7Ci1zdGF0aWMg
Y29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogfQogCiBjbGFzcyBJbmZlclN3aXRjaGVzIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0tpbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNLaW5kLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0tpbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMTEsNyArMjExLDcgQEAgaW5saW5lIEtpbmQg
dHJhcHBpbmcoS2luZCBraW5kKQogc3RydWN0IEtpbmRIYXNoIHsKICAgICBzdGF0aWMgdW5zaWdu
ZWQgaGFzaChjb25zdCBLaW5kJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0
aWMgYm9vbCBlcXVhbChjb25zdCBLaW5kJiBhLCBjb25zdCBLaW5kJiBiKSB7IHJldHVybiBhID09
IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRl
ZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5
T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwpAQCAtMjI1
LDcgKzIyNSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPEpTQzo6QjM6OksKIAog
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEhhc2hUcmFpdHM7CiB0ZW1wbGF0ZTw+IHN0cnVj
dCBIYXNoVHJhaXRzPEpTQzo6QjM6OktpbmQ+IDogcHVibGljIFNpbXBsZUNsYXNzSGFzaFRyYWl0
czxKU0M6OkIzOjpLaW5kPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVy
byA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0g
ZmFsc2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsNyAr
NzIsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIG5hbWVzcGFjZSB7CiAKIG5h
bWVzcGFjZSBCM0xvd2VyVG9BaXJJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiB1
c2luZyBBcmcgPSBBaXI6OkFyZzsKQEAgLTUzMSw3ICs1MzEsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgcmV0dXJuIEFyZzo6YWRkcih0bXAoYWRkcmVzcyksIG9mZnNldCk7CiAgICAgICAgIH07
CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG90c09mVXNlcyA9IDEw
OyAvLyBUaGlzIGlzIGFyYml0cmFyeSBhbmQgd2Ugc2hvdWxkIHR1bmUgaXQgZXZlbnR1YWxseS4K
KyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBsb3RzT2ZVc2VzID0gMTA7IC8vIFRo
aXMgaXMgYXJiaXRyYXJ5IGFuZCB3ZSBzaG91bGQgdHVuZSBpdCBldmVudHVhbGx5LgogCiAgICAg
ICAgIC8vIE9ubHkgbWF0Y2ggaWYgdGhlIGFkZHJlc3MgdmFsdWUgaXNuJ3QgdXNlZCBpbiBzb21l
IGxhcmdlIG51bWJlciBvZiBwbGFjZXMuCiAgICAgICAgIGlmIChtX3VzZUNvdW50cy5udW1Vc2Vz
KGFkZHJlc3MpID4gbG90c09mVXNlcykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M05hdGl2ZVRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M05hdGl2ZVRyYWl0cy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNOYXRpdmVUcmFpdHMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw3MSArMzcsNzEgQEAgdGVt
cGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBOYXRpdmVUcmFpdHM7CiAKIHRlbXBsYXRlPD4gc3RydWN0
IE5hdGl2ZVRyYWl0czxpbnQ4X3Q+IHsKICAgICB0eXBlZGVmIGludDMyX3QgQ2Fub25pY2FsVHlw
ZTsKLSAgICBzdGF0aWMgY29uc3QgQmFuayBiYW5rID0gR1A7Ci0gICAgc3RhdGljIGNvbnN0IFdp
ZHRoIHdpZHRoID0gV2lkdGg4OworICAgIHN0YXRpYyBjb25zdGV4cHIgQmFuayBiYW5rID0gR1A7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBXaWR0aCB3aWR0aCA9IFdpZHRoODsKICAgICBzdGF0aWMg
Y29uc3RleHByIFR5cGUgdHlwZSA9IEludDMyOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgTmF0
aXZlVHJhaXRzPHVpbnQ4X3Q+IHsKICAgICB0eXBlZGVmIGludDMyX3QgQ2Fub25pY2FsVHlwZTsK
LSAgICBzdGF0aWMgY29uc3QgQmFuayBiYW5rID0gR1A7Ci0gICAgc3RhdGljIGNvbnN0IFdpZHRo
IHdpZHRoID0gV2lkdGg4OworICAgIHN0YXRpYyBjb25zdGV4cHIgQmFuayBiYW5rID0gR1A7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBXaWR0aCB3aWR0aCA9IFdpZHRoODsKICAgICBzdGF0aWMgY29u
c3RleHByIFR5cGUgdHlwZSA9IEludDMyOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgTmF0aXZl
VHJhaXRzPGludDE2X3Q+IHsKICAgICB0eXBlZGVmIGludDMyX3QgQ2Fub25pY2FsVHlwZTsKLSAg
ICBzdGF0aWMgY29uc3QgQmFuayBiYW5rID0gR1A7Ci0gICAgc3RhdGljIGNvbnN0IFdpZHRoIHdp
ZHRoID0gV2lkdGgxNjsKKyAgICBzdGF0aWMgY29uc3RleHByIEJhbmsgYmFuayA9IEdQOworICAg
IHN0YXRpYyBjb25zdGV4cHIgV2lkdGggd2lkdGggPSBXaWR0aDE2OwogICAgIHN0YXRpYyBjb25z
dGV4cHIgVHlwZSB0eXBlID0gSW50MzI7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBOYXRpdmVU
cmFpdHM8dWludDE2X3Q+IHsKICAgICB0eXBlZGVmIGludDMyX3QgQ2Fub25pY2FsVHlwZTsKLSAg
ICBzdGF0aWMgY29uc3QgQmFuayBiYW5rID0gR1A7Ci0gICAgc3RhdGljIGNvbnN0IFdpZHRoIHdp
ZHRoID0gV2lkdGgxNjsKKyAgICBzdGF0aWMgY29uc3RleHByIEJhbmsgYmFuayA9IEdQOworICAg
IHN0YXRpYyBjb25zdGV4cHIgV2lkdGggd2lkdGggPSBXaWR0aDE2OwogICAgIHN0YXRpYyBjb25z
dGV4cHIgVHlwZSB0eXBlID0gSW50MzI7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBOYXRpdmVU
cmFpdHM8aW50MzJfdD4gewogICAgIHR5cGVkZWYgaW50MzJfdCBDYW5vbmljYWxUeXBlOwotICAg
IHN0YXRpYyBjb25zdCBCYW5rIGJhbmsgPSBHUDsKLSAgICBzdGF0aWMgY29uc3QgV2lkdGggd2lk
dGggPSBXaWR0aDMyOworICAgIHN0YXRpYyBjb25zdGV4cHIgQmFuayBiYW5rID0gR1A7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBXaWR0aCB3aWR0aCA9IFdpZHRoMzI7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBUeXBlIHR5cGUgPSBJbnQzMjsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IE5hdGl2ZVRy
YWl0czx1aW50MzJfdD4gewogICAgIHR5cGVkZWYgaW50MzJfdCBDYW5vbmljYWxUeXBlOwotICAg
IHN0YXRpYyBjb25zdCBCYW5rIGJhbmsgPSBHUDsKLSAgICBzdGF0aWMgY29uc3QgV2lkdGggd2lk
dGggPSBXaWR0aDMyOworICAgIHN0YXRpYyBjb25zdGV4cHIgQmFuayBiYW5rID0gR1A7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBXaWR0aCB3aWR0aCA9IFdpZHRoMzI7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBUeXBlIHR5cGUgPSBJbnQzMjsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IE5hdGl2ZVRy
YWl0czxpbnQ2NF90PiB7CiAgICAgdHlwZWRlZiBpbnQ2NF90IENhbm9uaWNhbFR5cGU7Ci0gICAg
c3RhdGljIGNvbnN0IEJhbmsgYmFuayA9IEdQOwotICAgIHN0YXRpYyBjb25zdCBXaWR0aCB3aWR0
aCA9IFdpZHRoNjQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBCYW5rIGJhbmsgPSBHUDsKKyAgICBz
dGF0aWMgY29uc3RleHByIFdpZHRoIHdpZHRoID0gV2lkdGg2NDsKICAgICBzdGF0aWMgY29uc3Rl
eHByIFR5cGUgdHlwZSA9IEludDY0OwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgTmF0aXZlVHJh
aXRzPHVpbnQ2NF90PiB7CiAgICAgdHlwZWRlZiBpbnQ2NF90IENhbm9uaWNhbFR5cGU7Ci0gICAg
c3RhdGljIGNvbnN0IEJhbmsgYmFuayA9IEdQOwotICAgIHN0YXRpYyBjb25zdCBXaWR0aCB3aWR0
aCA9IFdpZHRoNjQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBCYW5rIGJhbmsgPSBHUDsKKyAgICBz
dGF0aWMgY29uc3RleHByIFdpZHRoIHdpZHRoID0gV2lkdGg2NDsKICAgICBzdGF0aWMgY29uc3Rl
eHByIFR5cGUgdHlwZSA9IEludDY0OwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgTmF0aXZlVHJh
aXRzPGZsb2F0PiB7CiAgICAgdHlwZWRlZiBmbG9hdCBDYW5vbmljYWxUeXBlOwotICAgIHN0YXRp
YyBjb25zdCBCYW5rIGJhbmsgPSBGUDsKLSAgICBzdGF0aWMgY29uc3QgV2lkdGggd2lkdGggPSBX
aWR0aDMyOworICAgIHN0YXRpYyBjb25zdGV4cHIgQmFuayBiYW5rID0gRlA7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBXaWR0aCB3aWR0aCA9IFdpZHRoMzI7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBU
eXBlIHR5cGUgPSBGbG9hdDsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IE5hdGl2ZVRyYWl0czxk
b3VibGU+IHsKICAgICB0eXBlZGVmIGRvdWJsZSBDYW5vbmljYWxUeXBlOwotICAgIHN0YXRpYyBj
b25zdCBCYW5rIGJhbmsgPSBGUDsKLSAgICBzdGF0aWMgY29uc3QgV2lkdGggd2lkdGggPSBXaWR0
aDY0OworICAgIHN0YXRpYyBjb25zdGV4cHIgQmFuayBiYW5rID0gRlA7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBXaWR0aCB3aWR0aCA9IFdpZHRoNjQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBUeXBl
IHR5cGUgPSBEb3VibGU7CiB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNS
ZWR1Y2VEb3VibGVUb0Zsb2F0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNSZWR1Y2VEb3VibGVUb0Zsb2F0LmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlRG91YmxlVG9GbG9hdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewog
bmFtZXNwYWNlIHsKIAogbmFtZXNwYWNlIEIzUmVkdWNlRG91YmxlVG9GbG9hdEludGVybmFsIHsK
LXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9v
bCB2ZXJib3NlID0gZmFsc2U7CiB9CiBib29sIHByaW50UmVtYWluaW5nQ29udmVyc2lvbnMgPSBm
YWxzZTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlTG9vcFN0cmVu
Z3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VM
b29wU3RyZW5ndGguY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNSZWR1Y2VMb29wU3RyZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNyAr
MTQ1LDcgQEAgdm9pZCBmYXN0Rm9yd2FyZENvcHkzMih1aW50MzJfdCogZHN0LCBjbwogI2VuZGlm
CiAKIGNsYXNzIFJlZHVjZUxvb3BTdHJlbmd0aCB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVy
Ym9zZSA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7
CiAKICAgICBzdHJ1Y3QgQWRkckluZm8gewogICAgICAgICBWYWx1ZSogYXBwZW5kQWRkcihQcm9j
ZWR1cmUmIHByb2MsIEJhc2ljQmxvY2sqIGJsb2NrLCBWYWx1ZSogYWRkcikKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTkwLDcgKzkwLDcgQEAgbmFtZXNwYWNlIHsKIC8vIGNhbm9uaWNh
bCBpZiB4LT5pbmRleCgpIDw9IHktPmluZGV4KCkuCiAKIG5hbWVzcGFjZSBCM1JlZHVjZVN0cmVu
Z3RoSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGlj
IGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogLy8gRklYTUU6IFRoaXMgSW50
UmFuZ2Ugc3R1ZmYgc2hvdWxkIGJlIHJlZmFjdG9yZWQgaW50byBhIGdlbmVyYWwgY29uc3RhbnQg
cHJvcGFnYXRvci4gSXQncyB3ZWlyZApAQCAtMjEwMiw3ICsyMTAyLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIC8vIGJsb2Nrcy4gVGhpcyBpcyBwcmV0dHkgbXVjaCBndWFyYW50ZWVkIHNpbmNl
IG9uZSBvZiB0aG9zZSBibG9ja3Mgd2lsbCByZXBsYWNlIGFsbAogICAgICAgICAgICAgLy8gdXNl
cyBvZiB0aGUgU2VsZWN0IHdpdGggYSBjb25zdGFudCwgYW5kIHRoYXQgY29uc3RhbnQgd2lsbCBi
ZSB0cmFuc2l0aXZlbHkgdXNlZAogICAgICAgICAgICAgLy8gZnJvbSB0aGUgY2hlY2suCi0gICAg
ICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2VsZWN0U3BlY2lhbGl6YXRpb25Cb3VuZCA9
IDM7CisgICAgICAgICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNlbGVjdFNwZWNpYWxp
emF0aW9uQm91bmQgPSAzOwogICAgICAgICAgICAgVmFsdWUqIHNlbGVjdCA9IGZpbmRSZWNlbnRO
b2RlTWF0Y2hpbmcoCiAgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCksIHNlbGVjdFNw
ZWNpYWxpemF0aW9uQm91bmQsCiAgICAgICAgICAgICAgICAgWyZdIChWYWx1ZSogdmFsdWUpIC0+
IGJvb2wgewpAQCAtMjI4Niw3ICsyMjg2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgUkVMRUFTRV9B
U1NFUlQoc3RhcnRJbmRleCAhPSBVSU5UX01BWCk7CiAKICAgICAgICAgLy8gQnkgQmFzaWNCbG9j
ayBjb252ZW50aW9uLCBjYXNlSW5kZXggPT0gMCA9PiB0aGVuLCBjYXNlSW5kZXggPT0gMSA9PiBl
bHNlLgotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtQ2FzZXMgPSAyOworICAgICAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUNhc2VzID0gMjsKICAgICAgICAgQmFzaWNC
bG9jayogY2FzZXNbbnVtQ2FzZXNdOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bnVtQ2FzZXM7ICsraSkKICAgICAgICAgICAgIGNhc2VzW2ldID0gbV9ibG9ja0luc2VydGlvblNl
dC5pbnNlcnRCZWZvcmUobV9ibG9jayk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYWx1ZUtleS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Zh
bHVlS2V5LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbHVlS2V5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNzgsNyArMTc4LDcgQEAgcHJpdmF0ZToK
IHN0cnVjdCBWYWx1ZUtleUhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFZh
bHVlS2V5JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVh
bChjb25zdCBWYWx1ZUtleSYgYSwgY29uc3QgVmFsdWVLZXkmIGIpIHsgcmV0dXJuIGEgPT0gYjsg
fQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0g
dHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRl
bGV0ZWQgPSB0cnVlOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCkBAIC0xOTIsNyAr
MTkyLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpCMzo6VgogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0IEhh
c2hUcmFpdHM8SlNDOjpCMzo6VmFsdWVLZXk+IDogcHVibGljIFNpbXBsZUNsYXNzSGFzaFRyYWl0
czxKU0M6OkIzOjpWYWx1ZUtleT4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJ
c1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVy
byA9IGZhbHNlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvdGVzdGIzXzYuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjNfNi5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjNfNi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NjIsMTEgKzE2NjIs
MTEgQEAgdm9pZCB0ZXN0SW50ZXJwcmV0ZXIoKQogICAgIGRpc3BhdGNoLT5hcHBlbmRTdWNjZXNz
b3IoRnJlcXVlbnRlZEJsb2NrKHN0b3ApKTsKIAogICAgIC8vIE91ciAib3Bjb2RlcyIuCi0gICAg
c3RhdGljIGNvbnN0IGludHB0cl90IEFkZERQID0gMDsKLSAgICBzdGF0aWMgY29uc3QgaW50cHRy
X3QgQWRkQ1AgPSAxOwotICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBBZGQgPSAyOwotICAgIHN0
YXRpYyBjb25zdCBpbnRwdHJfdCBQcmludCA9IDM7Ci0gICAgc3RhdGljIGNvbnN0IGludHB0cl90
IFN0b3AgPSA0OworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50cHRyX3QgQWRkRFAgPSAwOworICAg
IHN0YXRpYyBjb25zdGV4cHIgaW50cHRyX3QgQWRkQ1AgPSAxOworICAgIHN0YXRpYyBjb25zdGV4
cHIgaW50cHRyX3QgQWRkID0gMjsKKyAgICBzdGF0aWMgY29uc3RleHByIGludHB0cl90IFByaW50
ID0gMzsKKyAgICBzdGF0aWMgY29uc3RleHByIGludHB0cl90IFN0b3AgPSA0OwogCiAgICAgcG9s
eUp1bXAtPnNldEdlbmVyYXRvcigKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29u
c3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNCeUdyYXBoQ29sb3JpbmcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVS
ZWdpc3RlcnNCeUdyYXBoQ29sb3JpbmcuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlUmVnaXN0ZXJzQnlHcmFwaENvbG9yaW5n
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUxNiw3ICs1MTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
c3RydWN0IEludGVyZmVyZW5jZUVkZ2VIYXNoIHsKICAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhh
c2goY29uc3QgSW50ZXJmZXJlbmNlRWRnZSYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAg
ICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IEludGVyZmVyZW5jZUVkZ2UmIGEsIGNvbnN0
IEludGVyZmVyZW5jZUVkZ2UmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgICAgICBzdGF0aWMg
Y29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRy
dWU7CiAgICAgfTsKICAgICB0eXBlZGVmIFNpbXBsZUNsYXNzSGFzaFRyYWl0czxJbnRlcmZlcmVu
Y2VFZGdlPiBJbnRlcmZlcmVuY2VFZGdlSGFzaFRyYWl0czsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVN0YWNrQnlHcmFwaENvbG9yaW5nLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2tC
eUdyYXBoQ29sb3JpbmcuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2tCeUdyYXBoQ29sb3JpbmcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsg
bmFtZXNwYWNlCiBuYW1lc3BhY2UgewogCiBuYW1lc3BhY2UgQWlyQWxsb2NhdGVTdGFja0J5R3Jh
cGhDb2xvcmluZ0ludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsK
K3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIHN0cnVjdCBDb2Fs
ZXNjYWJsZU1vdmUgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTQ2Nyw3ICsxNDY3LDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBB
cmdIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBBcmcmIGtleSkgeyByZXR1
cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IEFyZyYgYSwgY29u
c3QgQXJnJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZl
VG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIH0gfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKQEAgLTE0ODksNyArMTQ4OSw3IEBAIHRlbXBsYXRlPD4g
c3RydWN0IERlZmF1bHRIYXNoPEpTQzo6QjM6OkEKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBIYXNoVHJhaXRzOwogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkIzOjpBaXI6
OkFyZz4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpCMzo6QWlyOjpBcmc+IHsKICAgICAv
LyBCZWNhdXNlIG1fc2NhbGUgaXMgMSBpbiB0aGUgZW1wdHkgdmFsdWUuCi0gICAgc3RhdGljIGNv
bnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwu
aAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJD
Q2FsbFNwZWNpYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgog
ICAgIC8vIFlvdSBjYW5ub3QgdXNlIHRoaXMgcmVnaXN0ZXIgdG8gcGFzcyBhcmd1bWVudHMuIEl0
IGp1c3Qgc28gaGFwcGVucyB0aGF0IHRoaXMgcmVnaXN0ZXIgaXMgbm90CiAgICAgLy8gdXNlZCBm
b3IgYXJndW1lbnRzIGluIHRoZSBDIGNhbGxpbmcgY29udmVudGlvbi4gQnkgdGhlIHdheSwgdGhp
cyBpcyB0aGUgb25seSB0aGluZyB0aGF0IGNhdXNlcwogICAgIC8vIHRoaXMgc3BlY2lhbCB0byBi
ZSBzcGVjaWZpYyB0byBDIGNhbGxzLgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgc2NyYXRjaFJl
Z2lzdGVyID0gR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uQXJndW1lbnRHUFIwOworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHNjcmF0Y2hSZWdpc3RlciA9IEdQUkluZm86Om5vblByZXNlcnZl
ZE5vbkFyZ3VtZW50R1BSMDsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgZm9yRWFjaEFyZyhJbnN0
JiwgY29uc3QgU2NvcGVkTGFtYmRhPEluc3Q6OkVhY2hBcmdDYWxsYmFjaz4mKSBmaW5hbDsKQEAg
LTY1LDE1ICs2NSwxNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBkZWVwRHVtcEltcGwoUHJpbnRT
dHJlYW0mKSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgc3BlY2lhbEFyZ09mZnNldCA9IDA7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bVNw
ZWNpYWxBcmdzID0gMTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2FsbGVlQXJnT2Zmc2V0
ID0gbnVtU3BlY2lhbEFyZ3M7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUNhbGxlZUFy
Z3MgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCByZXR1cm5HUEFyZ09mZnNldCA9IG51
bVNwZWNpYWxBcmdzICsgbnVtQ2FsbGVlQXJnczsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
bnVtUmV0dXJuR1BBcmdzID0gMjsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgcmV0dXJuRlBB
cmdPZmZzZXQgPSBudW1TcGVjaWFsQXJncyArIG51bUNhbGxlZUFyZ3MgKyBudW1SZXR1cm5HUEFy
Z3M7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bVJldHVybkZQQXJncyA9IDE7Ci0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIGFyZ0FyZ09mZnNldCA9CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBzcGVjaWFsQXJnT2Zmc2V0ID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG51bVNwZWNpYWxBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IGNhbGxlZUFyZ09mZnNldCA9IG51bVNwZWNpYWxBcmdzOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgbnVtQ2FsbGVlQXJncyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCByZXR1cm5HUEFyZ09mZnNldCA9IG51bVNwZWNpYWxBcmdzICsgbnVtQ2FsbGVlQXJnczsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bVJldHVybkdQQXJncyA9IDI7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCByZXR1cm5GUEFyZ09mZnNldCA9IG51bVNwZWNpYWxBcmdz
ICsgbnVtQ2FsbGVlQXJncyArIG51bVJldHVybkdQQXJnczsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIG51bVJldHVybkZQQXJncyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBhcmdBcmdPZmZzZXQgPQogICAgICAgICBudW1TcGVjaWFsQXJncyArIG51bUNhbGxlZUFy
Z3MgKyBudW1SZXR1cm5HUEFyZ3MgKyBudW1SZXR1cm5GUEFyZ3M7CiAgICAgCiAgICAgUmVnaXN0
ZXJTZXQgbV9jbG9iYmVyZWRSZWdzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJFbWl0U2h1ZmZsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJFbWl0U2h1ZmZsZS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRW1pdFNodWZmbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNl
CiBuYW1lc3BhY2UgewogCiBuYW1lc3BhY2UgQWlyRW1pdFNodWZmbGVJbnRlcm5hbCB7Ci1zdGF0
aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVy
Ym9zZSA9IGZhbHNlOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJGaXhPYnZpb3VzU3BpbGxzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckZpeE9idmlvdXNTcGlsbHMu
Y3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckZpeE9idmlvdXNTcGlsbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsNyArNDAsNyBAQCBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlCiBuYW1lc3BhY2UgewogCiBu
YW1lc3BhY2UgQWlyRml4T2J2aW91c1NwaWxsc0ludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29s
IHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7
CiB9CiAKIGNsYXNzIEZpeE9idmlvdXNTcGlsbHMgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJGb3JtVGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckZvcm1UYWJsZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckZvcm1UYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDEz
ICszMSwxMyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFp
ciB7CiAKLXN0YXRpYyBjb25zdCB1aW50OF90IGZvcm1Sb2xlU2hpZnQgPSAwOwotc3RhdGljIGNv
bnN0IHVpbnQ4X3QgZm9ybVJvbGVNYXNrID0gMTU7Ci1zdGF0aWMgY29uc3QgdWludDhfdCBmb3Jt
QmFua1NoaWZ0ID0gNDsKLXN0YXRpYyBjb25zdCB1aW50OF90IGZvcm1CYW5rTWFzayA9IDE7Ci1z
dGF0aWMgY29uc3QgdWludDhfdCBmb3JtV2lkdGhTaGlmdCA9IDU7Ci1zdGF0aWMgY29uc3QgdWlu
dDhfdCBmb3JtV2lkdGhNYXNrID0gMzsKLXN0YXRpYyBjb25zdCB1aW50OF90IGZvcm1JbnZhbGlk
U2hpZnQgPSA3Oworc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGZvcm1Sb2xlU2hpZnQgPSAwOwor
c3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGZvcm1Sb2xlTWFzayA9IDE1Oworc3RhdGljIGNvbnN0
ZXhwciB1aW50OF90IGZvcm1CYW5rU2hpZnQgPSA0Oworc3RhdGljIGNvbnN0ZXhwciB1aW50OF90
IGZvcm1CYW5rTWFzayA9IDE7CitzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgZm9ybVdpZHRoU2hp
ZnQgPSA1Oworc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGZvcm1XaWR0aE1hc2sgPSAzOworc3Rh
dGljIGNvbnN0ZXhwciB1aW50OF90IGZvcm1JbnZhbGlkU2hpZnQgPSA3OwogCiAjZGVmaW5lIEVO
Q09ERV9JTlNUX0ZPUk0ocm9sZSwgYmFuaywgd2lkdGgpIChzdGF0aWNfY2FzdDx1aW50OF90Pihy
b2xlKSA8PCBmb3JtUm9sZVNoaWZ0IHwgc3RhdGljX2Nhc3Q8dWludDhfdD4oYmFuaykgPDwgZm9y
bUJhbmtTaGlmdCB8IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHdpZHRoKSA8PCBmb3JtV2lkdGhTaGlm
dCkKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMb3dlckFmdGVyUmVn
QWxsb2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
TG93ZXJBZnRlclJlZ0FsbG9jLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJMb3dlckFmdGVyUmVnQWxsb2MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNw
YWNlCiBuYW1lc3BhY2UgewogCiBuYW1lc3BhY2UgQWlyTG93ZXJBZnRlclJlZ0FsbG9jSW50ZXJu
YWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhw
ciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KICAgICAKIH0gLy8gYW5vbnltb3VzIG5hbWVzcGFj
ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lh
bC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
clByaW50U3BlY2lhbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogICAg
IC8vIFlvdSBjYW5ub3QgdXNlIHRoaXMgcmVnaXN0ZXIgdG8gcGFzcyBhcmd1bWVudHMuIEl0IGp1
c3Qgc28gaGFwcGVucyB0aGF0IHRoaXMgcmVnaXN0ZXIgaXMgbm90CiAgICAgLy8gdXNlZCBmb3Ig
YXJndW1lbnRzIGluIHRoZSBDIGNhbGxpbmcgY29udmVudGlvbi4gQnkgdGhlIHdheSwgdGhpcyBp
cyB0aGUgb25seSB0aGluZyB0aGF0IGNhdXNlcwogICAgIC8vIHRoaXMgc3BlY2lhbCB0byBiZSBz
cGVjaWZpYyB0byBDIGNhbGxzLgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgc2NyYXRjaFJlZ2lz
dGVyID0gR1BSSW5mbzo6bm9uQXJnR1BSMDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBz
Y3JhdGNoUmVnaXN0ZXIgPSBHUFJJbmZvOjpub25BcmdHUFIwOwogICAgIAogcHJvdGVjdGVkOgog
ICAgIHZvaWQgZm9yRWFjaEFyZyhJbnN0JiwgY29uc3QgU2NvcGVkTGFtYmRhPEluc3Q6OkVhY2hB
cmdDYWxsYmFjaz4mKSBmaW5hbDsKQEAgLTExMywxNCArMTEzLDE0IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIGRlZXBEdW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogICAgIAogcHJp
dmF0ZToKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc3BlY2lhbEFyZ09mZnNldCA9IDA7Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bVNwZWNpYWxBcmdzID0gMTsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgY2FsbGVlQXJnT2Zmc2V0ID0gbnVtU3BlY2lhbEFyZ3M7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIG51bUNhbGxlZUFyZ3MgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCByZXR1cm5HUEFyZ09mZnNldCA9IG51bVNwZWNpYWxBcmdzICsgbnVtQ2FsbGVlQXJn
czsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtUmV0dXJuR1BBcmdzID0gMjsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgcmV0dXJuRlBBcmdPZmZzZXQgPSBudW1TcGVjaWFsQXJncyAr
IG51bUNhbGxlZUFyZ3MgKyBudW1SZXR1cm5HUEFyZ3M7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIG51bVJldHVybkZQQXJncyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBz
cGVjaWFsQXJnT2Zmc2V0ID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bVNw
ZWNpYWxBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGNhbGxlZUFyZ09m
ZnNldCA9IG51bVNwZWNpYWxBcmdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVt
Q2FsbGVlQXJncyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCByZXR1cm5HUEFy
Z09mZnNldCA9IG51bVNwZWNpYWxBcmdzICsgbnVtQ2FsbGVlQXJnczsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIG51bVJldHVybkdQQXJncyA9IDI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCByZXR1cm5GUEFyZ09mZnNldCA9IG51bVNwZWNpYWxBcmdzICsgbnVtQ2FsbGVl
QXJncyArIG51bVJldHVybkdQQXJnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51
bVJldHVybkZQQXJncyA9IDE7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBhcmdBcmdP
ZmZzZXQgPQogICAgIG51bVNwZWNpYWxBcmdzICsgbnVtQ2FsbGVlQXJncyArIG51bVJldHVybkdQ
QXJncyArIG51bVJldHVybkZQQXJnczsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyU3RhY2tBbGxvY2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpclN0YWNrQWxsb2NhdGlvbi5jcHAJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3RhY2tBbGxvY2F0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
QjMgeyBuYW1lc3BhY2UKIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBBaXJTdGFja0FsbG9jYXRp
b25JbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMg
Y29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xsZWN0aW9uPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJUbXAuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclRtcC5oCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclRtcC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzIyLDcgKzMyMiw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgVG1wSGFz
aCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgVG1wJiBrZXkpIHsgcmV0dXJuIGtl
eS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBUbXAmIGEsIGNvbnN0IFRt
cCYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29t
cGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBz
YWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpCMzo6QWlyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
QWNjZXNzQ2FzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0FjY2Vzc0Nhc2UuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUx
LDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiBuYW1lc3BhY2UgQWNjZXNzQ2FzZUludGVybmFsIHsK
LXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9v
bCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIEFjY2Vzc0Nhc2U6OkFjY2Vzc0Nhc2UoVk0mIHZtLCBK
U0NlbGwqIG93bmVyLCBBY2Nlc3NUeXBlIHR5cGUsIFByb3BlcnR5T2Zmc2V0IG9mZnNldCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0JiBjb25k
aXRpb25TZXQsIHN0ZDo6dW5pcXVlX3B0cjxQb2x5UHJvdG9BY2Nlc3NDaGFpbj4gcHJvdG90eXBl
QWNjZXNzQ2hhaW4pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExp
bmtTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9DYWxsTGlua1N0YXR1cy5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQw
LDcgKzQwLDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiBuYW1lc3BhY2UgQ2FsbExpbmtTdGF0dXNJ
bnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29u
c3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiBDYWxsTGlua1N0YXR1czo6Q2FsbExp
bmtTdGF0dXMoSlNWYWx1ZSB2YWx1ZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9DYWxsVmFyaWFudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9DYWxsVmFyaWFudC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ2FsbFZhcmlhbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTk1LDcg
KzE5NSw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgQ2FsbFZhcmlhbnRIYXNoIHsKICAgICBzdGF0aWMg
dW5zaWduZWQgaGFzaChjb25zdCBDYWxsVmFyaWFudCYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgp
OyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgQ2FsbFZhcmlhbnQmIGEsIGNvbnN0IENh
bGxWYXJpYW50JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBz
YWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIHR5cGVk
ZWYgVmVjdG9yPENhbGxWYXJpYW50LCAxPiBDYWxsVmFyaWFudExpc3Q7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTExMSw4ICsxMTEsOCBAQCBwdWJsaWM6CiAKICAgICBlbnVtIENvcHlQYXJzZWRCbG9j
a1RhZyB7IENvcHlQYXJzZWRCbG9jayB9OwogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFs
OwotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5l
ZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUsIFN1YnNwYWNl
QWNjZXNzPgogICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mKSB7IHJldHVy
biBudWxscHRyOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9y
aWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
T3JpZ2luLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlT3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yODIsMTMgKzI4MiwxMyBAQCBp
bmxpbmUgYm9vbCBDb2RlT3JpZ2luOjpvcGVyYXRvcj09KGNvbnN0CiBzdHJ1Y3QgQ29kZU9yaWdp
bkhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IENvZGVPcmlnaW4mIGtleSkg
eyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IENvZGVP
cmlnaW4mIGEsIGNvbnN0IENvZGVPcmlnaW4mIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0
YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0
cnVlOwogfTsKIAogc3RydWN0IENvZGVPcmlnaW5BcHByb3hpbWF0ZUhhc2ggewogICAgIHN0YXRp
YyB1bnNpZ25lZCBoYXNoKGNvbnN0IENvZGVPcmlnaW4mIGtleSkgeyByZXR1cm4ga2V5LmFwcHJv
eGltYXRlSGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgQ29kZU9yaWdpbiYg
YSwgY29uc3QgQ29kZU9yaWdpbiYgYikgeyByZXR1cm4gYS5pc0FwcHJveGltYXRlbHlFcXVhbFRv
KGIpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0
eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKQEAgLTMwMiw3ICsz
MDIsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxKU0M6OkNvZGVPCiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRzOwogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFz
aFRyYWl0czxKU0M6OkNvZGVPcmlnaW4+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6Q29k
ZU9yaWdpbj4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxz
ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0xNDYsNyArMTQ2LDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBGcmVxdWVudEV4aXRTaXRlSGFz
aCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYga2V5
KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgRnJl
cXVlbnRFeGl0U2l0ZSYgYSwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYgYikgeyByZXR1cm4gYSA9
PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0
eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGlyZWN0RXZhbENvZGVDYWNoZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EaXJlY3RFdmFsQ29k
ZUNhY2hlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9EaXJlY3RFdmFsQ29kZUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzQsNyArNzQs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBsaHMgPT0gcmhzOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNl
OworICAgICAgICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgfTsKIAogICAgICAgICAgICAgdHlw
ZWRlZiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8Q2FjaGVLZXk+IEhhc2hUcmFpdHM7CkBAIC0xMDIs
NyArMTAyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgY2xlYXIoKTsKIAogICAg
IHByaXZhdGU6Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4Q2FjaGVFbnRyaWVzID0gNjQ7
CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IG1heENhY2hlRW50cmllcyA9IDY0OwogCiAg
ICAgICAgIHZvaWQgc2V0U2xvdyhFeGVjU3RhdGUqLCBKU0NlbGwqIG93bmVyLCBjb25zdCBTdHJp
bmcmIGV2YWxTb3VyY2UsIENhbGxTaXRlSW5kZXgsIERpcmVjdEV2YWxFeGVjdXRhYmxlKik7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGVjdXRhYmxlVG9Db2RlQmxv
Y2tFZGdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4
ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2UuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKIGNsYXNz
IEV4ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2UgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRh
bDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgogICAgIHN0YXRpYyBJc29TdWJzcGFjZSog
c3Vic3BhY2VGb3IoVk0mIHZtKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0dldHRlclNldHRlckFjY2Vzc0Nhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmNwcAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldHRlclNldHRlckFjY2Vz
c0Nhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNyArMzksNyBAQAogbmFtZXNwYWNlIEpT
QyB7CiAKIG5hbWVzcGFjZSBHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlSW50ZXJuYWwgewotc3RhdGlj
IGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJv
c2UgPSBmYWxzZTsKIH0KIAogR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZTo6R2V0dGVyU2V0dGVyQWNj
ZXNzQ2FzZShWTSYgdm0sIEpTQ2VsbCogb3duZXIsIEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSwgUHJv
cGVydHlPZmZzZXQgb2Zmc2V0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgT2JqZWN0UHJv
cGVydHlDb25kaXRpb25TZXQmIGNvbmRpdGlvblNldCwgYm9vbCB2aWFQcm94eSwgV2F0Y2hwb2lu
dFNldCogYWRkaXRpb25hbFNldCwgSlNPYmplY3QqIGN1c3RvbVNsb3RCYXNlLCBzdGQ6OnVuaXF1
ZV9wdHI8UG9seVByb3RvQWNjZXNzQ2hhaW4+IHByb3RvdHlwZUFjY2Vzc0NoYWluKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xhenlPcGVyYW5kVmFsdWVQcm9maWxlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xhenlPcGVyYW5k
VmFsdWVQcm9maWxlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9MYXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTk5LDcgKzk5LDcgQEAgc3RydWN0IExhenlPcGVyYW5kVmFsdWVQcm9maWxlS2V5SGFzaCB7CiAg
ICAgc3RhdGljIGJvb2wgZXF1YWwoCiAgICAgICAgIGNvbnN0IExhenlPcGVyYW5kVmFsdWVQcm9m
aWxlS2V5JiBhLAogICAgICAgICBjb25zdCBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUtleSYgYikg
eyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9D
b21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRp
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmpl
Y3RQcm9wZXJ0eUNvbmRpdGlvbi5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI2Nyw3ICsyNjcsNyBAQCBzdHJ1Y3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25IYXNo
IHsKICAgICB7CiAgICAgICAgIHJldHVybiBhID09IGI7CiAgICAgfQotICAgIHN0YXRpYyBjb25z
dCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQ
cm9wZXJ0eUNvbmRpdGlvblNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODMsNyArMTgzLDcg
QEAgYm9vbCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldDo6aXNWYWxpZAogbmFtZXNwYWNlIHsK
IAogbmFtZXNwYWNlIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0SW50ZXJuYWwgewotc3RhdGlj
IGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJv
c2UgPSBmYWxzZTsKIH0KIAogT2JqZWN0UHJvcGVydHlDb25kaXRpb24gZ2VuZXJhdGVDb25kaXRp
b24oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nl
c3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5
bW9ycGhpY0FjY2Vzcy5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00
NSw3ICs0NSw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogbmFtZXNwYWNlIFBvbHltb3JwaGljQWNj
ZXNzSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGlj
IGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogdm9pZCBBY2Nlc3NHZW5lcmF0
aW9uUmVzdWx0OjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uaAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29u
ZGl0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMzIsNyArMzMyLDcgQEAgc3RydWN0IFByb3Bl
cnR5Q29uZGl0aW9uSGFzaCB7CiAgICAgewogICAgICAgICByZXR1cm4gYSA9PSBiOwogICAgIH0K
LSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRy
dWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxl
dGVkID0gdHJ1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzgsNzggKzM4LDc4IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3Mg
U3RydWN0dXJlOwogCiB0eXBlZGVmIHVpbnQ2NF90IFNwZWN1bGF0ZWRUeXBlOwotc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAwOyAvLyBXZSBkb24ndCBrbm93IGFueXRoaW5nIHlldC4KLXN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjRmluYWxPYmplY3QgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAw
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0ZpbmFsT2JqZWN0Lgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNBcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8
IDE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQXJyYXkuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY0Z1bmN0aW9uV2l0aERlZmF1bHRIYXNJbnN0YW5jZSAgICA9IDF1bGwgPDwgMjsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgSlNGdW5jdGlvbiB0aGF0IGhhcyBpdHMgSW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZSB0eXBlIGluZm8gZmxhZ3MgYml0IHNldC4KLXN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjRnVuY3Rpb25XaXRoTm9uRGVmYXVsdEhhc0luc3RhbmNlID0gMXVs
bCA8PCAzOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0Z1bmN0aW9uIHRoYXQgZG9lcyBub3QgaGF2
ZSBpdHMgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSB0eXBlIGluZm8gZmxhZ3MgYml0IHNl
dC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVuY3Rpb24gICAgICAgICAgICAg
ICAgICAgICAgICAgID0gU3BlY0Z1bmN0aW9uV2l0aERlZmF1bHRIYXNJbnN0YW5jZSB8IFNwZWNG
dW5jdGlvbldpdGhOb25EZWZhdWx0SGFzSW5zdGFuY2U7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpT
RnVuY3Rpb24uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDhBcnJheSAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIElu
dDhBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY0ludDE2QXJyYXkgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNTsg
Ly8gSXQncyBkZWZpbml0ZWx5IGFuIEludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2Vz
Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMkFycmF5ICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxdWxsIDw8IDY7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMkFycmF5
IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjVWludDhBcnJheSAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA3OyAvLyBJdCdz
IGRlZmluaXRlbHkgYW4gVWludDhBcnJheSBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1VpbnQ4Q2xhbXBlZEFycmF5ICAgICAgICAgICAg
ICAgICA9IDF1bGwgPDwgODsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQ4Q2xhbXBlZEFycmF5
IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjVWludDE2QXJyYXkgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA5OyAvLyBJdCdz
IGRlZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNVaW50MzJBcnJheSAgICAgICAgICAgICAgICAg
ICAgICAgPSAxdWxsIDw8IDEwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDMyQXJyYXkgb3Ig
b25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNG
bG9hdDMyQXJyYXkgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDExOyAvLyBJdCdzIGRl
ZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGbG9hdDY0QXJyYXkgICAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDEyOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25l
IG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNUeXBl
ZEFycmF5VmlldyAgICAgICAgICAgICAgICAgICAgPSBTcGVjSW50OEFycmF5IHwgU3BlY0ludDE2
QXJyYXkgfCBTcGVjSW50MzJBcnJheSB8IFNwZWNVaW50OEFycmF5IHwgU3BlY1VpbnQ4Q2xhbXBl
ZEFycmF5IHwgU3BlY1VpbnQxNkFycmF5IHwgU3BlY1VpbnQzMkFycmF5IHwgU3BlY0Zsb2F0MzJB
cnJheSB8IFNwZWNGbG9hdDY0QXJyYXk7Ci1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0RpcmVjdEFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTM7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhIERpcmVjdEFyZ3VtZW50cyBvYmplY3QuCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY1Njb3BlZEFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MTQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNjb3BlZEFyZ3VtZW50cyBvYmplY3QuCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ09iamVjdCAgICAgICAgICAgICAgICAgICAg
ICA9IDF1bGwgPDwgMTU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFN0cmluZ09iamVjdC4KLXN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjUmVnRXhwT2JqZWN0ICAgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAxNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUmVnRXhwT2JqZWN0IChhbmQg
bm90IGFueSBzdWJjbGFzcyBvZiBSZWdFeHBPYmplY3QpLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNQcm9taXNlT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE3
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm9taXNlIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNs
YXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY01hcE9iamVjdCAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTg7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE1hcCBv
YmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNTZXRPYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE5OyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4K
LXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha01hcE9iamVjdCAgICAgICAgICAg
ICAgICAgICAgID0gMXVsbCA8PCAyMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha01hcCBvYmpl
Y3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNXZWFrU2V0T2JqZWN0ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIxOyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBXZWFrU2V0IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMu
Ci1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1Byb3h5T2JqZWN0ICAgICAgICAgICAg
ICAgICAgICAgICA9IDF1bGwgPDwgMjI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFByb3h5IG9iamVj
dCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY0Rlcml2ZWRBcnJheSAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjM7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIERlcml2ZWRBcnJheSBvYmplY3QuCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY09iamVjdE90aGVyICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBvYmplY3QgYnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBK
U0FycmF5LCBvciBKU0Z1bmN0aW9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNT
dHJpbmdJZGVudCAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI1OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3MgYW4gaWRlbnRpZmllci4KLXN0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAgICAgICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCAyNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIG5vdCBh
biBpZGVudGlmaWVyLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjU3RyaW5nSWRlbnQgfCBTcGVjU3RyaW5nVmFy
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjU3ltYm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyNzsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgU3ltYm9sLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNDZWxsT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI4OyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBKU0NlbGwgYnV0IG5vdCBhIHN1YmNsYXNzIG9mIEpTT2JqZWN0IGFu
ZCBkZWZpbml0ZWx5IG5vdCBhIEpTU3RyaW5nLCBCaWdJbnQsIG9yIFN5bWJvbC4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQm9vbEludDMyICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCAyOTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgMCBv
ciAxLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25Cb29sSW50MzIgICAgICAg
ICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIg
d2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3IgMS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjSW50MzJPbmx5ICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0Jvb2xJbnQzMiB8
IFNwZWNOb25Cb29sSW50MzI7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMi4KLQotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMkFzSW50NTIgICAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDMxOyAvLyBJdCdzIGFuIEludDUyIGFuZCBpdCBjYW4gZml0IGluIGFuIGlu
dDMyLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnQzMkFzSW50NTIgICAg
ICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdzIGFuIEludDUyIGFuZCBpdCBjYW4n
dCBmaXQgaW4gYW4gaW50MzIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDUy
QW55ICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNJbnQzMkFzSW50NTIgfCBTcGVjTm9u
SW50MzJBc0ludDUyOyAvLyBJdCdzIGFueSBraW5kIG9mIEludDUyLgotCi1zdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0FueUludEFzRG91YmxlICAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgMzM7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNpZGUgYSBk
b3VibGUuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludEFzRG91YmxlICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzQ7IC8vIEl0J3MgZGVmaW5pdGVseSBub3QgYW4g
SW50NTIgYnV0IGl0J3MgYSByZWFsIG51bWJlciBhbmQgaXQncyBhIGRvdWJsZS4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUmVhbCAgICAgICAgICAgICAgICAgICAgICAg
ID0gU3BlY05vbkludEFzRG91YmxlIHwgU3BlY0FueUludEFzRG91YmxlOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBub24tTmFOIGRvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
RG91YmxlUHVyZU5hTiAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNTsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgc2FmZSB0byB0YWcgKGkuZS4gcHVyZSkuCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZUltcHVyZU5hTiAgICAgICAgICAgICAgICAg
ICA9IDF1bGwgPDwgMzY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHVuc2FmZSB0
byB0YWcgKGkuZS4gaW1wdXJlKS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91
YmxlTmFOICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0RvdWJsZVB1cmVOYU4gfCBTcGVj
RG91YmxlSW1wdXJlTmFOOyAvLyBJdCdzIGRlZmluaXRlbHkgc29tZSBraW5kIG9mIE5hTi4KLXN0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVEb3VibGUgICAgICAgICAgICAg
ICAgICAgID0gU3BlY0RvdWJsZVJlYWwgfCBTcGVjRG91YmxlUHVyZU5hTjsgLy8gSXQncyBlaXRo
ZXIgYSBub24tTmFOIG9yIGEgTmFOIGRvdWJsZSwgYnV0IGl0J3MgZGVmaW5pdGVseSBub3QgaW1w
dXJlIE5hTi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVsbERvdWJsZSAgICAg
ICAgICAgICAgICAgICAgICAgID0gU3BlY0RvdWJsZVJlYWwgfCBTcGVjRG91YmxlTmFOOyAvLyBJ
dCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNCeXRlY29kZVJlYWxOdW1iZXIgICAgICAgICAgICAgICAgPSBTcGVjSW50
MzJPbmx5IHwgU3BlY0RvdWJsZVJlYWw7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91
YmxlUmVhbC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVsbFJlYWxOdW1iZXIg
ICAgICAgICAgICAgICAgICAgID0gU3BlY0ludDMyT25seSB8IFNwZWNJbnQ1MkFueSB8IFNwZWNE
b3VibGVSZWFsOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJsZVJlYWwsIG9yIGFu
IEludDUyLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZU51bWJlciAg
ICAgICAgICAgICAgICAgICAgPSBTcGVjSW50MzJPbmx5IHwgU3BlY0J5dGVjb2RlRG91YmxlOyAv
LyBJdCdzIGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJsZSwgYW5kIHRoZSBEb3VibGUgY2Fubm90
IGJlIGFuIGltcHVyZSBOYU4uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludEFu
eUZvcm1hdCAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNJbnQ1MkFueSB8IFNwZWNJbnQzMk9u
bHkgfCBTcGVjQW55SW50QXNEb3VibGU7Ci0KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjRnVsbE51bWJlciAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludEFueUZvcm1hdCB8
IFNwZWNGdWxsRG91YmxlOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiwgSW50NTIsIG9yIGEgRG91
YmxlLCBhbmQgdGhlIERvdWJsZSBjYW4gYmUgaW1wdXJlIE5hTi4KLXN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjQm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8
PCAzNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQm9vbGVhbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAz
ODsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBOdWxsIG9yIFVuZGVmaW5lZC4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTWlzYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gU3BlY0Jvb2xlYW4gfCBTcGVjT3RoZXI7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgYSBi
b29sZWFuLCBOdWxsLCBvciBVbmRlZmluZWQuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY0VtcHR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzk7IC8vIEl0
J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0JpZ0ludCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
NDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJpZ0ludC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjRGF0YVZpZXdPYmplY3QgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA0MTsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgSlNEYXRhVmlldy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjUHJpbWl0aXZlICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY1N0cmluZyB8
IFNwZWNTeW1ib2wgfCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjTWlzYyB8IFNwZWNCaWdJbnQ7
IC8vIEl0J3MgYW55IG5vbi1PYmplY3QgSlNWYWx1ZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ZpbmFsT2Jq
ZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwgU3Bl
Y0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNTY29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2JqZWN0
IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNwZWNQcm9taXNlT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8
IFNwZWNTZXRPYmplY3QgfCBTcGVjV2Vha01hcE9iamVjdCB8IFNwZWNXZWFrU2V0T2JqZWN0IHwg
U3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNwZWNPYmplY3RPdGhlciB8IFNw
ZWNEYXRhVmlld09iamVjdDsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2lu
ZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
Q2VsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY09iamVjdCB8IFNwZWNTdHJp
bmcgfCBTcGVjU3ltYm9sIHwgU3BlY0NlbGxPdGhlciB8IFNwZWNCaWdJbnQ7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIEpTQ2VsbC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSGVhcFRv
cCAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0NlbGwgfCBTcGVjQnl0ZWNvZGVOdW1i
ZXIgfCBTcGVjTWlzYzsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJvdmUsIGV4Y2VwdCBmb3Ig
U3BlY0ludDUyT25seSBhbmQgU3BlY0RvdWJsZUltcHVyZU5hTi4KLXN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVUb3AgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0hl
YXBUb3AgfCBTcGVjRW1wdHk7IC8vIEl0IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQg
Zm9yIFNwZWNJbnQ1Mk9ubHkgYW5kIFNwZWNEb3VibGVJbXB1cmVOYU4uIENvcnJlc3BvbmRzIHRv
IHdoYXQgY291bGQgYmUgZm91bmQgaW4gYSBieXRlY29kZSBsb2NhbC4KLXN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjRnVsbFRvcCAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3Bl
Y0J5dGVjb2RlVG9wIHwgU3BlY0Z1bGxOdW1iZXI7IC8vIEl0IGNhbiBiZSBhbnl0aGluZyB0aGF0
IGJ5dGVjb2RlIGNvdWxkIHNlZSBwbHVzIGV4b3RpYyBlbmNvZGluZ3Mgb2YgbnVtYmVycy4KK3N0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY05vbmUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDA7IC8vIFdlIGRvbid0IGtub3cgYW55dGhpbmcgeWV0Lgorc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRmluYWxPYmplY3QgICAgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0ZpbmFsT2JqZWN0Lgorc3Rh
dGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQXJyYXkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMXVsbCA8PCAxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0FycmF5Lgorc3Rh
dGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRnVuY3Rpb25XaXRoRGVmYXVsdEhhc0lu
c3RhbmNlICAgID0gMXVsbCA8PCAyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0Z1bmN0aW9uIHRo
YXQgaGFzIGl0cyBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlIHR5cGUgaW5mbyBmbGFncyBi
aXQgc2V0Lgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRnVuY3Rpb25XaXRo
Tm9uRGVmYXVsdEhhc0luc3RhbmNlID0gMXVsbCA8PCAzOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBK
U0Z1bmN0aW9uIHRoYXQgZG9lcyBub3QgaGF2ZSBpdHMgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0
YW5jZSB0eXBlIGluZm8gZmxhZ3MgYml0IHNldC4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY0Z1bmN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNGdW5jdGlv
bldpdGhEZWZhdWx0SGFzSW5zdGFuY2UgfCBTcGVjRnVuY3Rpb25XaXRoTm9uRGVmYXVsdEhhc0lu
c3RhbmNlOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0Z1bmN0aW9uLgorc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50OEFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCA0OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50OEFycmF5IG9yIG9uZSBvZiBpdHMg
c3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDE2QXJy
YXkgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNTsgLy8gSXQncyBkZWZpbml0ZWx5
IGFuIEludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50MzJBcnJheSAgICAgICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCA2OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzJBcnJheSBvciBvbmUgb2YgaXRz
IHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNVaW50OEFy
cmF5ICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDc7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhbiBVaW50OEFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4
cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1VpbnQ4Q2xhbXBlZEFycmF5ICAgICAgICAgICAgICAgICA9
IDF1bGwgPDwgODsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQ4Q2xhbXBlZEFycmF5IG9yIG9u
ZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3Bl
Y1VpbnQxNkFycmF5ICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgOTsgLy8gSXQncyBk
ZWZpbml0ZWx5IGFuIFVpbnQxNkFycmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRp
YyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1VpbnQzMkFycmF5ICAgICAgICAgICAgICAg
ICAgICAgICA9IDF1bGwgPDwgMTA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBVaW50MzJBcnJheSBv
ciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBl
IFNwZWNGbG9hdDMyQXJyYXkgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDExOyAvLyBJ
dCdzIGRlZmluaXRlbHkgYW4gVWludDE2QXJyYXkgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgor
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRmxvYXQ2NEFycmF5ICAgICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCAxMjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIFVpbnQxNkFy
cmF5IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY1R5cGVkQXJyYXlWaWV3ICAgICAgICAgICAgICAgICAgICA9IFNwZWNJbnQ4QXJy
YXkgfCBTcGVjSW50MTZBcnJheSB8IFNwZWNJbnQzMkFycmF5IHwgU3BlY1VpbnQ4QXJyYXkgfCBT
cGVjVWludDhDbGFtcGVkQXJyYXkgfCBTcGVjVWludDE2QXJyYXkgfCBTcGVjVWludDMyQXJyYXkg
fCBTcGVjRmxvYXQzMkFycmF5IHwgU3BlY0Zsb2F0NjRBcnJheTsKK3N0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY0RpcmVjdEFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgMTM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERpcmVjdEFyZ3VtZW50cyBvYmplY3QuCitz
dGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNTY29wZWRBcmd1bWVudHMgICAgICAg
ICAgICAgICAgICAgPSAxdWxsIDw8IDE0OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTY29wZWRBcmd1
bWVudHMgb2JqZWN0Lgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5n
T2JqZWN0ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxNTsgLy8gSXQncyBkZWZpbml0
ZWx5IGEgU3RyaW5nT2JqZWN0Lgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVj
UmVnRXhwT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxNjsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgUmVnRXhwT2JqZWN0IChhbmQgbm90IGFueSBzdWJjbGFzcyBvZiBSZWdFeHBP
YmplY3QpLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjUHJvbWlzZU9iamVj
dCAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
UHJvbWlzZSBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjTWFwT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCAxODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTWFwIG9iamVjdCBvciBvbmUgb2YgaXRz
IHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNTZXRPYmpl
Y3QgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE5OyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4
cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1dlYWtNYXBPYmplY3QgICAgICAgICAgICAgICAgICAgICA9
IDF1bGwgPDwgMjA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFdlYWtNYXAgb2JqZWN0IG9yIG9uZSBv
ZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1dl
YWtTZXRPYmplY3QgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjE7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIFdlYWtTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRp
YyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1Byb3h5T2JqZWN0ICAgICAgICAgICAgICAg
ICAgICAgICA9IDF1bGwgPDwgMjI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFByb3h5IG9iamVjdCBv
ciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBl
IFNwZWNEZXJpdmVkQXJyYXkgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIzOyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBEZXJpdmVkQXJyYXkgb2JqZWN0Lgorc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0T3RoZXIgICAgICAgICAgICAgICAgICAgICAgID0gMXVs
bCA8PCAyNDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpTRmluYWxPYmpl
Y3QsIEpTQXJyYXksIG9yIEpTRnVuY3Rpb24uCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRU
eXBlIFNwZWNTdHJpbmdJZGVudCAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI1OyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3MgYW4gaWRlbnRpZmllci4KK3N0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ1ZhciAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDF1bGwgPDwgMjY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBh
bmQgaXQncyBub3QgYW4gaWRlbnRpZmllci4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNTdHJpbmdJZGVu
dCB8IFNwZWNTdHJpbmdWYXI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLgorc3RhdGlj
IGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3ltYm9sICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU3ltYm9sLgorc3RhdGlj
IGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMXVsbCA8PCAyODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3Qg
YSBzdWJjbGFzcyBvZiBKU09iamVjdCBhbmQgZGVmaW5pdGVseSBub3QgYSBKU1N0cmluZywgQmln
SW50LCBvciBTeW1ib2wuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29s
SW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI5OyAvLyBJdCdzIGRlZmlu
aXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCitzdGF0aWMgY29uc3RleHByIFNwZWN1
bGF0ZWRUeXBlIFNwZWNOb25Cb29sSW50MzIgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8
IDMwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAg
b3IgMS4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyT25seSAgICAg
ICAgICAgICAgICAgICAgICAgICA9IFNwZWNCb29sSW50MzIgfCBTcGVjTm9uQm9vbEludDMyOyAv
LyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIuCisKK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY0ludDMyQXNJbnQ1MiAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzE7
IC8vIEl0J3MgYW4gSW50NTIgYW5kIGl0IGNhbiBmaXQgaW4gYW4gaW50MzIuCitzdGF0aWMgY29u
c3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnQzMkFzSW50NTIgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdzIGFuIEludDUyIGFuZCBpdCBjYW4ndCBmaXQgaW4gYW4g
aW50MzIuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQ1MkFueSAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSBTcGVjSW50MzJBc0ludDUyIHwgU3BlY05vbkludDMyQXNJ
bnQ1MjsgLy8gSXQncyBhbnkga2luZCBvZiBJbnQ1Mi4KKworc3RhdGljIGNvbnN0ZXhwciBTcGVj
dWxhdGVkVHlwZSBTcGVjQW55SW50QXNEb3VibGUgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8
PCAzMzsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBpdCdzIGluc2lkZSBhIGRvdWJs
ZS4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludEFzRG91YmxlICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzQ7IC8vIEl0J3MgZGVmaW5pdGVseSBub3QgYW4g
SW50NTIgYnV0IGl0J3MgYSByZWFsIG51bWJlciBhbmQgaXQncyBhIGRvdWJsZS4KK3N0YXRpYyBj
b25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZVJlYWwgICAgICAgICAgICAgICAgICAg
ICAgICA9IFNwZWNOb25JbnRBc0RvdWJsZSB8IFNwZWNBbnlJbnRBc0RvdWJsZTsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgbm9uLU5hTiBkb3VibGUuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRU
eXBlIFNwZWNEb3VibGVQdXJlTmFOICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM1OyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyBzYWZlIHRvIHRhZyAoaS5lLiBwdXJlKS4K
K3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZUltcHVyZU5hTiAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0
IGlzIHVuc2FmZSB0byB0YWcgKGkuZS4gaW1wdXJlKS4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY0RvdWJsZU5hTiAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNEb3Vi
bGVQdXJlTmFOIHwgU3BlY0RvdWJsZUltcHVyZU5hTjsgLy8gSXQncyBkZWZpbml0ZWx5IHNvbWUg
a2luZCBvZiBOYU4uCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29k
ZURvdWJsZSAgICAgICAgICAgICAgICAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVQ
dXJlTmFOOyAvLyBJdCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91YmxlLCBidXQgaXQn
cyBkZWZpbml0ZWx5IG5vdCBpbXB1cmUgTmFOLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjRnVsbERvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0RvdWJsZVJl
YWwgfCBTcGVjRG91YmxlTmFOOyAvLyBJdCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91
YmxlLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVSZWFsTnVt
YmVyICAgICAgICAgICAgICAgID0gU3BlY0ludDMyT25seSB8IFNwZWNEb3VibGVSZWFsOyAvLyBJ
dCdzIGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJsZVJlYWwuCitzdGF0aWMgY29uc3RleHByIFNw
ZWN1bGF0ZWRUeXBlIFNwZWNGdWxsUmVhbE51bWJlciAgICAgICAgICAgICAgICAgICAgPSBTcGVj
SW50MzJPbmx5IHwgU3BlY0ludDUyQW55IHwgU3BlY0RvdWJsZVJlYWw7IC8vIEl0J3MgZWl0aGVy
IGFuIEludDMyIG9yIGEgRG91YmxlUmVhbCwgb3IgYW4gSW50NTIuCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZU51bWJlciAgICAgICAgICAgICAgICAgICAgPSBT
cGVjSW50MzJPbmx5IHwgU3BlY0J5dGVjb2RlRG91YmxlOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQz
MiBvciBhIERvdWJsZSwgYW5kIHRoZSBEb3VibGUgY2Fubm90IGJlIGFuIGltcHVyZSBOYU4uCitz
dGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnRBbnlGb3JtYXQgICAgICAgICAg
ICAgICAgICAgICAgPSBTcGVjSW50NTJBbnkgfCBTcGVjSW50MzJPbmx5IHwgU3BlY0FueUludEFz
RG91YmxlOworCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsTnVtYmVy
ICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjSW50QW55Rm9ybWF0IHwgU3BlY0Z1bGxEb3Vi
bGU7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyLCBJbnQ1Miwgb3IgYSBEb3VibGUsIGFuZCB0aGUg
RG91YmxlIGNhbiBiZSBpbXB1cmUgTmFOLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlw
ZSBTcGVjQm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNzsgLy8g
SXQncyBkZWZpbml0ZWx5IGEgQm9vbGVhbi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY090aGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzg7IC8v
IEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVsbCBvciBVbmRlZmluZWQuCitzdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNNaXNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBhIGJv
b2xlYW4sIE51bGwsIG9yIFVuZGVmaW5lZC4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzk7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNCaWdJbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDQwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCaWdJbnQuCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNEYXRhVmlld09iamVjdCAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDQxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0RhdGFWaWV3Lgorc3RhdGljIGNvbnN0
ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjUHJpbWl0aXZlICAgICAgICAgICAgICAgICAgICAgICAg
ID0gU3BlY1N0cmluZyB8IFNwZWNTeW1ib2wgfCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjTWlz
YyB8IFNwZWNCaWdJbnQ7IC8vIEl0J3MgYW55IG5vbi1PYmplY3QgSlNWYWx1ZS4KK3N0YXRpYyBj
b25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IFNwZWNGaW5hbE9iamVjdCB8IFNwZWNBcnJheSB8IFNwZWNGdW5jdGlvbiB8IFNwZWNU
eXBlZEFycmF5VmlldyB8IFNwZWNEaXJlY3RBcmd1bWVudHMgfCBTcGVjU2NvcGVkQXJndW1lbnRz
IHwgU3BlY1N0cmluZ09iamVjdCB8IFNwZWNSZWdFeHBPYmplY3QgfCBTcGVjUHJvbWlzZU9iamVj
dCB8IFNwZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1dlYWtNYXBPYmplY3QgfCBT
cGVjV2Vha1NldE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkgfCBT
cGVjT2JqZWN0T3RoZXIgfCBTcGVjRGF0YVZpZXdPYmplY3Q7IC8vIEJpdG1hc2sgdXNlZCBmb3Ig
dGVzdGluZyBmb3IgYW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCitzdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSBTcGVjT2JqZWN0IHwgU3BlY1N0cmluZyB8IFNwZWNTeW1ib2wgfCBTcGVjQ2VsbE90aGVyIHwg
U3BlY0JpZ0ludDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsLgorc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjSGVhcFRvcCAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
U3BlY0NlbGwgfCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjTWlzYzsgLy8gSXQgY2FuIGJlIGFu
eSBvZiB0aGUgYWJvdmUsIGV4Y2VwdCBmb3IgU3BlY0ludDUyT25seSBhbmQgU3BlY0RvdWJsZUlt
cHVyZU5hTi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlVG9w
ICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNIZWFwVG9wIHwgU3BlY0VtcHR5OyAvLyBJdCBj
YW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVj
RG91YmxlSW1wdXJlTmFOLiBDb3JyZXNwb25kcyB0byB3aGF0IGNvdWxkIGJlIGZvdW5kIGluIGEg
Ynl0ZWNvZGUgbG9jYWwuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxs
VG9wICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQnl0ZWNvZGVUb3AgfCBTcGVjRnVs
bE51bWJlcjsgLy8gSXQgY2FuIGJlIGFueXRoaW5nIHRoYXQgYnl0ZWNvZGUgY291bGQgc2VlIHBs
dXMgZXhvdGljIGVuY29kaW5ncyBvZiBudW1iZXJzLgogCiAvLyBTcGVjQ2VsbENoZWNrIGlzIHRo
ZSB0eXBlIHNldCByZXByZXNlbnRpbmcgdGhlIHZhbHVlcyB0aGF0IGNhbiBmbG93IHRocm91Z2gg
YSBjZWxsIGNoZWNrLgogLy8gT24gNjQtYml0IHBsYXRmb3JtcywgdGhlIGVtcHR5IHZhbHVlIHBh
c3NlcyBhIGNlbGwgY2hlY2suIEFsc28sIH5TcGVjQ2VsbENoZWNrIGlzIHRoZSB0eXBlCiAvLyBz
ZXQgdGhhdCByZXByZXNlbnRpbmcgdGhlIHZhbHVlcyB0aGF0IGZsb3cgdGhyb3VnaCB3aGVuIHRl
c3RpbmcgdGhhdCBzb21ldGhpbmcgaXMgbm90IGEgY2VsbC4KLXN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjQ2VsbENoZWNrICAgICAgICAgID0gaXM2NEJpdCgpID8gKFNwZWNDZWxsIHwg
U3BlY0VtcHR5KSA6IFNwZWNDZWxsOworc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjQ2VsbENoZWNrICAgICAgICAgID0gaXM2NEJpdCgpID8gKFNwZWNDZWxsIHwgU3BlY0VtcHR5
KSA6IFNwZWNDZWxsOwogCiB0eXBlZGVmIGJvb2wgKCpTcGVjdWxhdGVkVHlwZUNoZWNrZXIpKFNw
ZWN1bGF0ZWRUeXBlKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0
cnVjdHVyZVN0dWJJbmZvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShKSVQp
CiAKIG5hbWVzcGFjZSBTdHJ1Y3R1cmVTdHViSW5mb0ludGVybmFsIHsKLXN0YXRpYyBjb25zdCBi
b29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CiB9CiAKIFN0cnVjdHVyZVN0dWJJbmZvOjpTdHJ1Y3R1cmVTdHViSW5mbyhBY2Nlc3NUeXBl
IGFjY2Vzc1R5cGUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRDb2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI3MSw3ICsyNzEsNyBAQCB2b2lkIFVubGlua2VkQ29kZUJsb2NrOjphZGRFeHByZXNz
aW9uSW5mCiAKIGJvb2wgVW5saW5rZWRDb2RlQmxvY2s6OnR5cGVQcm9maWxlckV4cHJlc3Npb25J
bmZvRm9yQnl0ZWNvZGVPZmZzZXQodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQsIHVuc2lnbmVkJiBz
dGFydERpdm90LCB1bnNpZ25lZCYgZW5kRGl2b3QpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wg
dmVyYm9zZSA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CiAgICAgaWYgKCFtX3JhcmVEYXRhKSB7CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAg
ICAgICAgZGF0YUxvZ0YoIkRvbid0IGhhdmUgYXNzaWdubWVudCBpbmZvIGZvciBvZmZzZXQ6JXVc
biIsIGJ5dGVjb2RlT2Zmc2V0KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9VbmxpbmtlZENvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaAkod29ya2luZyBj
b3B5KQpAQCAtMTA5LDkgKzEwOSw5IEBAIHN0cnVjdCBVbmxpbmtlZFNpbXBsZUp1bXBUYWJsZSB7
CiBjbGFzcyBVbmxpbmtlZENvZGVCbG9jayA6IHB1YmxpYyBKU0NlbGwgewogcHVibGljOgogICAg
IHR5cGVkZWYgSlNDZWxsIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgc3RhdGlj
IGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogCiAgICAgZW51bSB7IENhbGxGdW5jdGlv
biwgQXBwbHlGdW5jdGlvbiB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVW5saW5rZWRFdmFsQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRXZhbENvZGVCbG9jay5oCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRFdmFsQ29kZUJsb2Nr
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgQ2FjaGVkRXZhbENvZGVC
bG9jazsKIGNsYXNzIFVubGlua2VkRXZhbENvZGVCbG9jayBmaW5hbCA6IHB1YmxpYyBVbmxpbmtl
ZEdsb2JhbENvZGVCbG9jayB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBVbmxpbmtlZEdsb2JhbENv
ZGVCbG9jayBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgc3RhdGljIFVubGlua2VkRXZhbENvZGVCbG9j
ayogY3JlYXRlKFZNJiB2bSwgY29uc3QgRXhlY3V0YWJsZUluZm8mIGluZm8sIE9wdGlvblNldDxD
b2RlR2VuZXJhdGlvbk1vZGU+IGNvZGVHZW5lcmF0aW9uTW9kZSkKICAgICB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jay5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0
aW9uQ29kZUJsb2NrLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDcgKzM0LDcgQEAgY2xhc3MgQ2FjaGVkRnVuY3Rpb25Db2RlQmxvY2s7CiBjbGFzcyBVbmxp
bmtlZEZ1bmN0aW9uQ29kZUJsb2NrIGZpbmFsIDogcHVibGljIFVubGlua2VkQ29kZUJsb2NrIHsK
IHB1YmxpYzoKICAgICB0eXBlZGVmIFVubGlua2VkQ29kZUJsb2NrIEJhc2U7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBT
dHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAK
ICAgICBzdGF0aWMgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogY3JlYXRlKFZNJiB2bSwgQ29k
ZVR5cGUgY29kZVR5cGUsIGNvbnN0IEV4ZWN1dGFibGVJbmZvJiBpbmZvLCBPcHRpb25TZXQ8Q29k
ZUdlbmVyYXRpb25Nb2RlPiBjb2RlR2VuZXJhdGlvbk1vZGUpCiAgICAgewpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rp
b25FeGVjdXRhYmxlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3MgQ2FjaGVkRnVuY3Rpb25F
eGVjdXRhYmxlOwogCiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVy
ZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2Vzcz4KICAgICBzdGF0aWMgSXNv
U3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKQEAgLTE0Miw3ICsxNDIsNyBAQCBwdWJsaWM6
CiAgICAgQ29kZUZlYXR1cmVzIGZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlczsg
fQogICAgIGJvb2wgaGFzQ2FwdHVyZWRWYXJpYWJsZXMoKSBjb25zdCB7IHJldHVybiBtX2hhc0Nh
cHR1cmVkVmFyaWFibGVzOyB9CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0
aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9
IHRydWU7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAogICAgIGJvb2wgaXNC
dWlsdGluRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2lzQnVpbHRpbkZ1bmN0aW9uOyB9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRNb2R1bGVQcm9ncmFt
Q29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1VubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jay5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJs
b2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ2FjaGVkTW9kdWxl
Q29kZUJsb2NrOwogY2xhc3MgVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrIGZpbmFsIDog
cHVibGljIFVubGlua2VkR2xvYmFsQ29kZUJsb2NrIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFVu
bGlua2VkR2xvYmFsQ29kZUJsb2NrIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFs
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICBzdGF0aWMgVW5saW5r
ZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKiBjcmVhdGUoVk0mIHZtLCBjb25zdCBFeGVjdXRhYmxl
SW5mbyYgaW5mbywgT3B0aW9uU2V0PENvZGVHZW5lcmF0aW9uTW9kZT4gY29kZUdlbmVyYXRpb25N
b2RlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxpbmtl
ZFByb2dyYW1Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrLmgJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZFByb2dyYW1Db2RlQmxvY2su
aAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBDYWNoZWRQcm9ncmFtQ29k
ZUJsb2NrOwogY2xhc3MgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrIGZpbmFsIDogcHVibGljIFVu
bGlua2VkR2xvYmFsQ29kZUJsb2NrIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFVubGlua2VkR2xv
YmFsQ29kZUJsb2NrIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICBzdGF0aWMgVW5saW5rZWRQcm9ncmFt
Q29kZUJsb2NrKiBjcmVhdGUoVk0mIHZtLCBjb25zdCBFeGVjdXRhYmxlSW5mbyYgaW5mbywgT3B0
aW9uU2V0PENvZGVHZW5lcmF0aW9uTW9kZT4gY29kZUdlbmVyYXRpb25Nb2RlKQogICAgIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVQcm9maWxlLmgJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVBy
b2ZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDEwICszOCwxMCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogdGVtcGxhdGU8dW5zaWduZWQgbnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ+CiBz
dHJ1Y3QgVmFsdWVQcm9maWxlQmFzZSB7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJl
ck9mQnVja2V0cyA9IG51bWJlck9mQnVja2V0c0FyZ3VtZW50OwotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBudW1iZXJPZlNwZWNGYWlsQnVja2V0cyA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIGJ1Y2tldEluZGV4TWFzayA9IG51bWJlck9mQnVja2V0cyAtIDE7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIHRvdGFsTnVtYmVyT2ZCdWNrZXRzID0gbnVtYmVyT2ZCdWNrZXRzICsg
bnVtYmVyT2ZTcGVjRmFpbEJ1Y2tldHM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBu
dW1iZXJPZkJ1Y2tldHMgPSBudW1iZXJPZkJ1Y2tldHNBcmd1bWVudDsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIG51bWJlck9mU3BlY0ZhaWxCdWNrZXRzID0gMTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIGJ1Y2tldEluZGV4TWFzayA9IG51bWJlck9mQnVja2V0cyAtIDE7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB0b3RhbE51bWJlck9mQnVja2V0cyA9IG51
bWJlck9mQnVja2V0cyArIG51bWJlck9mU3BlY0ZhaWxCdWNrZXRzOwogICAgIAogICAgIFZhbHVl
UHJvZmlsZUJhc2UoKQogICAgIHsKQEAgLTE0Niw3ICsxNDYsNyBAQCBzdHJ1Y3QgTWluaW1hbFZh
bHVlUHJvZmlsZSA6IHB1YmxpYyBWYWx1CiAKIHRlbXBsYXRlPHVuc2lnbmVkIGxvZ051bWJlck9m
QnVja2V0c0FyZ3VtZW50Pgogc3RydWN0IFZhbHVlUHJvZmlsZVdpdGhMb2dOdW1iZXJPZkJ1Y2tl
dHMgOiBwdWJsaWMgVmFsdWVQcm9maWxlQmFzZTwxIDw8IGxvZ051bWJlck9mQnVja2V0c0FyZ3Vt
ZW50PiB7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvZ051bWJlck9mQnVja2V0cyA9IGxv
Z051bWJlck9mQnVja2V0c0FyZ3VtZW50OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
bG9nTnVtYmVyT2ZCdWNrZXRzID0gbG9nTnVtYmVyT2ZCdWNrZXRzQXJndW1lbnQ7CiAgICAgCiAg
ICAgVmFsdWVQcm9maWxlV2l0aExvZ051bWJlck9mQnVja2V0cygpCiAgICAgICAgIDogVmFsdWVQ
cm9maWxlQmFzZTwxIDw8IGxvZ051bWJlck9mQnVja2V0c0FyZ3VtZW50PigpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZpcnR1YWxSZWdpc3Rlci5oCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJl
Z2lzdGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDUsOCArMTA1LDggQEAgcHVibGlj
OgogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdDsKIAogcHJpdmF0ZToKLSAg
ICBzdGF0aWMgY29uc3QgaW50IHNfaW52YWxpZFZpcnR1YWxSZWdpc3RlciA9IDB4M2ZmZmZmZmY7
Ci0gICAgc3RhdGljIGNvbnN0IGludCBzX2ZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4ID0gRmly
c3RDb25zdGFudFJlZ2lzdGVySW5kZXg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgc19pbnZh
bGlkVmlydHVhbFJlZ2lzdGVyID0gMHgzZmZmZmZmZjsKKyAgICBzdGF0aWMgY29uc3RleHByIGlu
dCBzX2ZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4ID0gRmlyc3RDb25zdGFudFJlZ2lzdGVySW5k
ZXg7CiAKICAgICBzdGF0aWMgaW50IGxvY2FsVG9PcGVyYW5kKGludCBsb2NhbCkgeyByZXR1cm4g
LTEgLSBsb2NhbDsgfQogICAgIHN0YXRpYyBpbnQgb3BlcmFuZFRvTG9jYWwoaW50IG9wZXJhbmQp
IHsgcmV0dXJuIC0xIC0gb3BlcmFuZDsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1dhdGNocG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvV2F0Y2hwb2ludC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDc1LDkg
KzQ3NSw5IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25z
dCB1aW50cHRyX3QgSXNUaGluRmxhZyAgICAgICAgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1aW50
cHRyX3QgU3RhdGVNYXNrICAgICAgICAgPSA2OwotICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3Qg
U3RhdGVTaGlmdCAgICAgICAgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IElz
VGhpbkZsYWcgICAgICAgID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBTdGF0
ZU1hc2sgICAgICAgICA9IDY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgU3RhdGVT
aGlmdCAgICAgICAgPSAxOwogICAgIAogICAgIHN0YXRpYyBib29sIGlzVGhpbih1aW50cHRyX3Qg
ZGF0YSkgeyByZXR1cm4gZGF0YSAmIElzVGhpbkZsYWc7IH0KICAgICBzdGF0aWMgYm9vbCBpc0Zh
dCh1aW50cHRyX3QgZGF0YSkgeyByZXR1cm4gIWlzVGhpbihkYXRhKTsgfQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC04OTcsOCArODk3LDgg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZW1pdE91dE9mTGluZUZpbmFsbHlIYW5k
bGVyKFJlZ2lzdGVySUQqIGV4Y2VwdGlvblJlZ2lzdGVyLCBSZWdpc3RlcklEKiBjb21wbGV0aW9u
VHlwZVJlZ2lzdGVyLCBUcnlEYXRhKik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBzdGF0aWMg
Y29uc3QgaW50IEN1cnJlbnRMZXhpY2FsU2NvcGVJbmRleCA9IC0yOwotICAgICAgICBzdGF0aWMg
Y29uc3QgaW50IE91dGVybW9zdExleGljYWxTY29wZUluZGV4ID0gLTE7CisgICAgICAgIHN0YXRp
YyBjb25zdGV4cHIgaW50IEN1cnJlbnRMZXhpY2FsU2NvcGVJbmRleCA9IC0yOworICAgICAgICBz
dGF0aWMgY29uc3RleHByIGludCBPdXRlcm1vc3RMZXhpY2FsU2NvcGVJbmRleCA9IC0xOwogCiAg
ICAgICAgIGludCBjdXJyZW50TGV4aWNhbFNjb3BlSW5kZXgoKSBjb25zdAogICAgICAgICB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0xhYmVsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9MYWJlbC5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0xhYmVsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMTMzLDcgKzEzMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAg
IHR5cGVkZWYgVmVjdG9yPGludCwgOD4gSnVtcFZlY3RvcjsKIAotICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgaW52YWxpZExvY2F0aW9uID0gVUlOVF9NQVg7CisgICAgICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgaW52YWxpZExvY2F0aW9uID0gVUlOVF9NQVg7CiAKICAgICAgICAg
aW50IG1fcmVmQ291bnQgeyAwIH07CiAgICAgICAgIHVuc2lnbmVkIG1fbG9jYXRpb24geyBpbnZh
bGlkTG9jYXRpb24gfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTY1LDcgKzE2NSw3IEBAIFJlZ2lzdGVySUQqIFRoaXNOb2RlOjplbWl0Qnl0ZWNvZGUo
Qnl0ZWMKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWdpc3RlcklEKiByZXN1bHQgPSBnZW5l
cmF0b3IubW92ZShkc3QsIGdlbmVyYXRvci50aGlzUmVnaXN0ZXIoKSk7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIHRoaXNMZW5ndGggPSA0OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgdGhpc0xlbmd0aCA9IDQ7CiAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShnZW5lcmF0
b3IudGhpc1JlZ2lzdGVyKCksIHBvc2l0aW9uKCksIEpTVGV4dFBvc2l0aW9uKC0xLCBwb3NpdGlv
bigpLm9mZnNldCArIHRoaXNMZW5ndGgsIC0xKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvUmVnaXN0ZXJJRC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvUmVnaXN0ZXJJRC5o
CShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L1JlZ2lzdGVySUQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjksOCArMTI5LDggQEAgbmFtZXNwYWNlIEpT
QyB7CiBuYW1lc3BhY2UgV1RGIHsKIAogICAgIHRlbXBsYXRlPD4gc3RydWN0IFZlY3RvclRyYWl0
czxKU0M6OlJlZ2lzdGVySUQ+IDogVmVjdG9yVHJhaXRzQmFzZTx0cnVlLCBKU0M6OlJlZ2lzdGVy
SUQ+IHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNJbml0aWFsaXphdGlvbiA9IHRy
dWU7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGNhbkluaXRpYWxpemVXaXRoTWVtc2V0ID0g
dHJ1ZTsgLy8gRGVmYXVsdCBpbml0aWFsaXphdGlvbiBqdXN0IHNldHMgZXZlcnl0aGluZyB0byAw
IG9yIGZhbHNlLCBzbyB0aGlzIGlzIHNhZmUuCisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBuZWVkc0luaXRpYWxpemF0aW9uID0gdHJ1ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGNhbkluaXRpYWxpemVXaXRoTWVtc2V0ID0gdHJ1ZTsgLy8gRGVmYXVsdCBpbml0aWFsaXph
dGlvbiBqdXN0IHNldHMgZXZlcnl0aGluZyB0byAwIG9yIGZhbHNlLCBzbyB0aGlzIGlzIHNhZmUu
CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvQnJlYWtwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9CcmVha3BvaW50LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9CcmVha3BvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTcsNyAr
NTcsNyBAQCBzdHJ1Y3QgQnJlYWtwb2ludCA6IHB1YmxpYyBEb3VibHlMaW5rZWRMCiAgICAgdW5z
aWduZWQgaGl0Q291bnQgeyAwIH07CiAgICAgYm9vbCByZXNvbHZlZCB7IGZhbHNlIH07CiAKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdW5zcGVjaWZpZWRDb2x1bW4gPSBVSU5UX01BWDsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHVuc3BlY2lmaWVkQ29sdW1uID0gVUlOVF9NQVg7
CiAKIHByaXZhdGU6CiAgICAgQnJlYWtwb2ludCogbV9wcmV2OwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJzZURhdGEuY3BwCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQ
YXJzZURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMsMTYgKzEzMywxNiBAQCB0ZW1wbGF0
ZSA8RGVidWdnZXJQYXJzZUluZm9UYWcgVD4gc3RydWN0CiAKIHRlbXBsYXRlIDw+IHN0cnVjdCBE
ZWJ1Z2dlclBhcnNlSW5mbzxQcm9ncmFtPiB7CiAgICAgdHlwZWRlZiBKU0M6OlByb2dyYW1Ob2Rl
IFJvb3ROb2RlOwotICAgIHN0YXRpYyBjb25zdCBTb3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlID0g
U291cmNlUGFyc2VNb2RlOjpQcm9ncmFtTW9kZTsKLSAgICBzdGF0aWMgY29uc3QgSlNQYXJzZXJT
dHJpY3RNb2RlIHN0cmljdE1vZGUgPSBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdDsKLSAg
ICBzdGF0aWMgY29uc3QgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUgPSBKU1BhcnNlclNj
cmlwdE1vZGU6OkNsYXNzaWM7CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3VyY2VQYXJzZU1vZGUg
cGFyc2VNb2RlID0gU291cmNlUGFyc2VNb2RlOjpQcm9ncmFtTW9kZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlID0gSlNQYXJzZXJTdHJpY3RNb2Rl
OjpOb3RTdHJpY3Q7CisgICAgc3RhdGljIGNvbnN0ZXhwciBKU1BhcnNlclNjcmlwdE1vZGUgc2Ny
aXB0TW9kZSA9IEpTUGFyc2VyU2NyaXB0TW9kZTo6Q2xhc3NpYzsKIH07CiAKIHRlbXBsYXRlIDw+
IHN0cnVjdCBEZWJ1Z2dlclBhcnNlSW5mbzxNb2R1bGU+IHsKICAgICB0eXBlZGVmIEpTQzo6TW9k
dWxlUHJvZ3JhbU5vZGUgUm9vdE5vZGU7Ci0gICAgc3RhdGljIGNvbnN0IFNvdXJjZVBhcnNlTW9k
ZSBwYXJzZU1vZGUgPSBTb3VyY2VQYXJzZU1vZGU6Ok1vZHVsZUV2YWx1YXRlTW9kZTsKLSAgICBz
dGF0aWMgY29uc3QgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUgPSBKU1BhcnNlclN0cmlj
dE1vZGU6OlN0cmljdDsKLSAgICBzdGF0aWMgY29uc3QgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlw
dE1vZGUgPSBKU1BhcnNlclNjcmlwdE1vZGU6Ok1vZHVsZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUgPSBTb3VyY2VQYXJzZU1vZGU6Ok1vZHVsZUV2YWx1
YXRlTW9kZTsKKyAgICBzdGF0aWMgY29uc3RleHByIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RN
b2RlID0gSlNQYXJzZXJTdHJpY3RNb2RlOjpTdHJpY3Q7CisgICAgc3RhdGljIGNvbnN0ZXhwciBK
U1BhcnNlclNjcmlwdE1vZGUgc2NyaXB0TW9kZSA9IEpTUGFyc2VyU2NyaXB0TW9kZTo6TW9kdWxl
OwogfTsKIAogdGVtcGxhdGUgPERlYnVnZ2VyUGFyc2VJbmZvVGFnIFQ+CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQcmltaXRpdmVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyUHJpbWl0aXZlcy5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJQcmltaXRpdmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsOSArMzAsOSBAQAogbmFtZXNwYWNlIEpT
QyB7CiAKIHR5cGVkZWYgc2l6ZV90IFNvdXJjZUlEOwotc3RhdGljIGNvbnN0IFNvdXJjZUlEIG5v
U291cmNlSUQgPSAwOworc3RhdGljIGNvbnN0ZXhwciBTb3VyY2VJRCBub1NvdXJjZUlEID0gMDsK
IAogdHlwZWRlZiBzaXplX3QgQnJlYWtwb2ludElEOwotc3RhdGljIGNvbnN0IEJyZWFrcG9pbnRJ
RCBub0JyZWFrcG9pbnRJRCA9IDA7CitzdGF0aWMgY29uc3RleHByIEJyZWFrcG9pbnRJRCBub0Jy
ZWFrcG9pbnRJRCA9IDA7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyU2NvcGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJTY29wZS5oCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJTY29wZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDA5
LCAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBKU1Njb3BlOwog
Y2xhc3MgRGVidWdnZXJTY29wZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVy
dHlOYW1lczsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBEZWJ1Z2dlclNjb3BlKiBj
cmVhdGUoVk0mIHZtLCBKU1Njb3BlKiBzY29wZSk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWJzdHJhY3RIZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMwNCw4ICszMDQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQp
IGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWVT
aGlmdCA9IDE1OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB0b3BTaGlmdCA9IDE0OworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgdmFsdWVTaGlmdCA9IDE1OworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgdG9wU2hpZnQgPSAxNDsKICAgICAKICAgICBQYXlsb2FkIHBheWxv
YWRJbXBsKCkgY29uc3QKICAgICB7CkBAIC0zMjksNyArMzI5LDcgQEAgcHJpdmF0ZToKIHN0cnVj
dCBBYnN0cmFjdEhlYXBIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBBYnN0
cmFjdEhlYXAmIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRpYyBib29sIGVx
dWFsKGNvbnN0IEFic3RyYWN0SGVhcCYgYSwgY29uc3QgQWJzdHJhY3RIZWFwJiBiKSB7IHJldHVy
biBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9y
RGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVU
b0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2NywxMiArNTY3LDEyIEBAIHByaXZhdGU6CiBu
YW1lc3BhY2UgV1RGIHsKIHRlbXBsYXRlIDw+CiBzdHJ1Y3QgVmVjdG9yVHJhaXRzPEpTQzo6REZH
OjpBYnN0cmFjdFZhbHVlPiA6IFZlY3RvclRyYWl0c0Jhc2U8ZmFsc2UsIEpTQzo6REZHOjpBYnN0
cmFjdFZhbHVlPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1z
ZXQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Jbml0aWFsaXplV2l0aE1l
bXNldCA9IHRydWU7CiB9OwogCiB0ZW1wbGF0ZSA8Pgogc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpE
Rkc6OkFic3RyYWN0VmFsdWU+IDogR2VuZXJpY0hhc2hUcmFpdHM8SlNDOjpERkc6OkFic3RyYWN0
VmFsdWU+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1ZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CiB9Owog
fTsKICNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2UuY3BwCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50
c0VsaW1pbmF0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBE
RkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wg
dmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsK
IH0KIAogY2xhc3MgQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDkgKzgwLDkgQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBuYW1lc3BhY2UgREZHQnl0ZUNvZGVQYXJzZXJJbnRl
cm5hbCB7CiAjaWZkZWYgTkRFQlVHCi1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7
CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogI2Vsc2UKLXN0YXRpYyBj
b25zdCBib29sIHZlcmJvc2UgPSB0cnVlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2Ug
PSB0cnVlOwogI2VuZGlmCiB9IC8vIG5hbWVzcGFjZSBERkdCeXRlQ29kZVBhcnNlckludGVybmFs
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4LDcgKzQ4LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBERkcgewogbmFtZXNwYWNlIHsKIAogbmFtZXNwYWNlIERGR0NTRVBoYXNlSW50ZXJuYWwg
ewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBi
b29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogY2xhc3MgSW1wdXJlRGF0YVNsb3QgewpAQCAtMzUz
LDcgKzM1Myw3IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIHRoZSBvdmVyaGVhZCBvZiBIYXNoTWFw
cyBjYW4gYmUgcXVpdGUgaGlnaCBjdXJyZW50bHk6IGNsZWFyaW5nIHRoZW0sIG9yIGV2ZW4gcmVt
b3ZpbmcKICAgICAgICAgLy8gZW5vdWdoIHRoaW5ncyBmcm9tIHRoZW0sIGRlbGV0ZXMgKG9yIHJl
c2l6ZXMpIHRoZWlyIGJhY2tpbmcgc3RvcmUgZWFnZXJseS4gSGVuY2UKICAgICAgICAgLy8gSGFz
aE1hcHMgaW5kdWNlIGEgbG90IG9mIG1hbGxvYyB0cmFmZmljLgotICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgY2FwYWNpdHkgPSAxMDA7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgY2FwYWNpdHkgPSAxMDA7CiAgICAgCiAgICAgICAgIFNtYWxsTWFwcygpCiAgICAgICAg
ICAgICA6IG1fcHVyZUxlbmd0aCgwKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nv
bW1vbi5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIERGRyB7CiBzdHJ1Y3QgTm9kZTsKIAogdHlwZWRlZiB1aW50MzJfdCBCbG9j
a0luZGV4Owotc3RhdGljIGNvbnN0IEJsb2NrSW5kZXggTm9CbG9jayA9IFVJTlRfTUFYOworc3Rh
dGljIGNvbnN0ZXhwciBCbG9ja0luZGV4IE5vQmxvY2sgPSBVSU5UX01BWDsKIAogLy8gVXNlIFJl
ZkNoaWxkcmVuIGlmIHRoZSBjaGlsZCByZWYgY291bnRzIGhhdmVuJ3QgYWxyZWFkeSBiZWVuIGFk
anVzdGVkIHVzaW5nCiAvLyBvdGhlciBtZWFucyBhbmQgZWl0aGVyIG9mIHRoZSBmb2xsb3dpbmcg
aXMgdHJ1ZToKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tcGlsYXRpb25L
ZXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbXBpbGF0
aW9uS2V5LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29tcGlsYXRpb25LZXkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04OSw3ICs4OSw3IEBAIHBy
aXZhdGU6CiBzdHJ1Y3QgQ29tcGlsYXRpb25LZXlIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQg
aGFzaChjb25zdCBDb21waWxhdGlvbktleSYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAg
ICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgQ29tcGlsYXRpb25LZXkmIGEsIGNvbnN0IENvbXBp
bGF0aW9uS2V5JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBz
YWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIH0gfSAv
LyBuYW1lc3BhY2UgSlNDOjpERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RGVzaXJlZEdsb2JhbFByb3BlcnR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEZXNpcmVkR2xvYmFsUHJvcGVydHkuaAkocmV2aXNpb24gMjQ5OTc2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVkR2xvYmFsUHJvcGVydHkuaAkod29y
a2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBAQCBwcml2YXRlOgogc3RydWN0IERlc2lyZWRHbG9i
YWxQcm9wZXJ0eUhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IERlc2lyZWRH
bG9iYWxQcm9wZXJ0eSYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJv
b2wgZXF1YWwoY29uc3QgRGVzaXJlZEdsb2JhbFByb3BlcnR5JiBhLCBjb25zdCBEZXNpcmVkR2xv
YmFsUHJvcGVydHkmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29s
IHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdFZGdlRG9taW5hdGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdFZGdlRG9taW5hdGVzLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRWRnZURvbWluYXRlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDcgKzMyLDcg
QEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgRWRnZURvbWluYXRl
cyB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCiBwdWJsaWM6CiAgICAgRWRnZURv
bWluYXRlcyhHcmFwaCYgZ3JhcGgsIEJhc2ljQmxvY2sqIGJsb2NrKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdFcG9jaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRXBvY2guaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdFcG9jaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwOSw4ICsxMDksOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCiBwcml2YXRl
OgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX25vbmUgPSAwOwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBzX2ZpcnN0ID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNf
bm9uZSA9IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzX2ZpcnN0ID0gMTsKICAg
ICAKICAgICB1bnNpZ25lZCBtX2Vwb2NoOwogfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRm9yQWxsS2lsbHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZvckFsbEtpbGxzLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRm9yQWxsS2lsbHMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDIsOCArMTAy
LDggQEAgdm9pZCBmb3JBbGxLaWxsZWROb2Rlc0F0Tm9kZUluZGV4KAogICAgIEdyYXBoJiBncmFw
aCwgQXZhaWxhYmlsaXR5TWFwJiBhdmFpbGFiaWxpdHlNYXAsIEJhc2ljQmxvY2sqIGJsb2NrLCB1
bnNpZ25lZCBub2RlSW5kZXgsCiAgICAgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKIHsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgc2VlbkluQ2xvc3VyZUZsYWcgPSAxOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBjYWxsZWRGdW5jdG9yRmxhZyA9IDI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBzZWVuSW5DbG9zdXJlRmxhZyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBjYWxsZWRGdW5jdG9yRmxhZyA9IDI7CiAgICAgSGFzaE1hcDxOb2RlKiwgdW5zaWdu
ZWQ+IGZsYWdzOwogICAgIAogICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQobm9kZUluZGV4KTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTEzMyw3ICsxMTMzLDcgQEAgQnl0ZWNvZGVLaWxscyYgR3JhcGg6OmtpbGxzRm9y
KElubGluZUNhbAogCiBib29sIEdyYXBoOjppc0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpc3Rl
ciBvcGVyYW5kLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiB7Ci0gICAgc3RhdGljIGNvbnN0IGJv
b2wgdmVyYm9zZSA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0g
ZmFsc2U7CiAgICAgCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2coIkNoZWNraW5n
IG9mIG9wZXJhbmQgaXMgbGl2ZTogIiwgb3BlcmFuZCwgIlxuIik7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0xNDksNyArMTQ5LDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBIZWFwTG9jYXRpb25IYXNo
IHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBIZWFwTG9jYXRpb24mIGtleSkgeyBy
ZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IEhlYXBMb2Nh
dGlvbiYgYSwgY29uc3QgSGVhcExvY2F0aW9uJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBz
dGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0g
dHJ1ZTsKIH07CiAKIExvY2F0aW9uS2luZCBpbmRleGVkUHJvcGVydHlMb2NGb3JSZXN1bHRUeXBl
KE5vZGVGbGFncyk7CkBAIC0xOTAsNyArMTkwLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVs
dEhhc2g8SlNDOjpERkc6OgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0
czsKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpERkc6OkhlYXBMb2NhdGlvbj4g
OiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpERkc6OkhlYXBMb2NhdGlvbj4gewotICAgIHN0
YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFj
dFN0YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0lu
UGxhY2VBYnN0cmFjdFN0YXRlLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zOSw3ICszOSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIG5h
bWVzcGFjZSBERkdJblBsYWNlQWJzdHJhY3RTdGF0ZUludGVybmFsIHsKLXN0YXRpYyBjb25zdCBi
b29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CiB9CiAKIEluUGxhY2VBYnN0cmFjdFN0YXRlOjpJblBsYWNlQWJzdHJhY3RTdGF0ZShHcmFw
aCYgZ3JhcGgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ludGVnZXJDaGVj
a0NvbWJpbmluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ludGVnZXJDaGVja0NvbWJpbmluZ1BoYXNlLmNwcAkocmV2aXNpb24gMjQ5OTc2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJbnRlZ2VyQ2hlY2tDb21iaW5pbmdQaGFz
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE0LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MCw3ICs0MCw3IEBACiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7CiAKIG5hbWVzcGFjZSBERkdJbnRlZ2VyQ2hlY2tDb21iaW5pbmdQaGFz
ZUludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBj
b25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIGNsYXNzIEludGVnZXJDaGVja0Nv
bWJpbmluZ1BoYXNlIDogcHVibGljIFBoYXNlIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhh
c2UuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ludGVnZXJSYW5nZU9wdGltaXphdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQz
LDcgKzQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogbmFtZXNwYWNlIHsK
IAogbmFtZXNwYWNlIERGR0ludGVnZXJSYW5nZU9wdGltaXphdGlvblBoYXNlSW50ZXJuYWwgewot
c3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29s
IHZlcmJvc2UgPSBmYWxzZTsKIH0KIGNvbnN0IHVuc2lnbmVkIGdpdmVVcFRocmVzaG9sZCA9IDUw
OwogCkBAIC05Nyw4ICs5Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQog
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1pblZhZ3VlbmVzcyA9IDA7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIG1heFZhZ3VlbmVzcyA9IDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBtaW5WYWd1ZW5lc3MgPSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
bWF4VmFndWVuZXNzID0gMjsKICAgICAKICAgICBzdGF0aWMgS2luZCBmbGlwcGVkKEtpbmQga2lu
ZCkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ludmFsaWRhdGlv
blBvaW50SW5qZWN0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25QaGFzZS5jcHAJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW52YWxpZGF0aW9uUG9p
bnRJbmplY3Rpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNyArMzgsNyBAQAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBJbnZhbGlkYXRpb25Qb2lu
dEluamVjdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKICAgICAKIHB1YmxpYzoKICAgICBJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlKEdy
YXBoJiBncmFwaCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTElDTVBoYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0xJQ01QaGFz
ZS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
TElDTVBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ2LDcgKzQ2LDcgQEAKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgTElDTVBoYXNlIDogcHVibGljIFBoYXNl
IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIAogICAgIHVzaW5nIE5hdHVyYWxMb29wID0g
U1NBTmF0dXJhbExvb3A7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTGF6
eU5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0xhenlO
b2RlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
TGF6eU5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSwxMiArMzUsMTIgQEAgbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBMYXp5Tm9kZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0IHNpemVfdCBqc0NvbnN0YW50VGFnID0gMDsKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90
IGRvdWJsZUNvbnN0YW50VGFnID0gMTsKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGludDUyQ29u
c3RhbnRUYWcgPSAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGpzQ29uc3RhbnRUYWcg
PSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGRvdWJsZUNvbnN0YW50VGFnID0gMTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBpbnQ1MkNvbnN0YW50VGFnID0gMjsKIAotICAg
IHN0YXRpYyBjb25zdCB1aW50cHRyX3QgdGFnTWFzayA9IDB4MzsKLSAgICBzdGF0aWMgY29uc3Qg
dWludHB0cl90IHBvaW50ZXJNYXNrID0gfnRhZ01hc2s7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50cHRyX3QgdGFnTWFzayA9IDB4MzsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBw
b2ludGVyTWFzayA9IH50YWdNYXNrOwogCiAgICAgZXhwbGljaXQgTGF6eU5vZGUoTm9kZSogbm9k
ZSA9IG51bGxwdHIpCiAgICAgICAgIDogbV9ub2RlKG5vZGUpCkBAIC0xNzcsNyArMTc3LDcgQEAg
bmFtZXNwYWNlIFdURiB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBIYXNoVHJhaXRz
OwogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkRGRzo6TGF6eU5vZGU+IDogU2lt
cGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6REZHOjpMYXp5Tm9kZT4gewotICAgIHN0YXRpYyBjb25z
dCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmllZElELmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmllZElELmgJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWluaWZpZWRJRC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBNaW5pZmllZElESGFzaCB7
CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgTWluaWZpZWRJRCYga2V5KSB7IHJldHVy
biBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgTWluaWZpZWRJRCYg
YSwgY29uc3QgTWluaWZpZWRJRCYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNv
bnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9
OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkBAIC05Myw3ICs5Myw3IEBAIHRlbXBsYXRl
PD4gc3RydWN0IERlZmF1bHRIYXNoPEpTQzo6REZHOjoKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IEhhc2hUcmFpdHM7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPEpTQzo6REZH
OjpNaW5pZmllZElEPiA6IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxKU0M6OkRGRzo6TWluaWZpZWRJ
RD4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01v
dkhpbnRSZW1vdmFsUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTW92SGludFJlbW92YWxQaGFzZS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTW92SGludFJlbW92YWxQaGFzZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiBu
YW1lc3BhY2UgewogCiBuYW1lc3BhY2UgREZHTW92SGludFJlbW92YWxQaGFzZUludGVybmFsIHsK
LXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9v
bCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIGNsYXNzIE1vdkhpbnRSZW1vdmFsUGhhc2UgOiBwdWJs
aWMgUGhhc2UgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxvd1By
b2plY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVGbG93UHJvamVjdGlvbi5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVGbG93UHJvamVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyNiw3ICsx
MjYsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1
aW50cHRyX3Qgc2hhZG93Qml0ID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBz
aGFkb3dCaXQgPSAxOwogICAgIAogICAgIHVpbnRwdHJfdCBtX3dvcmQgeyAwIH07CiB9OwpAQCAt
MTM0LDcgKzEzNCw3IEBAIHB1YmxpYzoKIHN0cnVjdCBOb2RlRmxvd1Byb2plY3Rpb25IYXNoIHsK
ICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChOb2RlRmxvd1Byb2plY3Rpb24ga2V5KSB7IHJldHVy
biBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoTm9kZUZsb3dQcm9qZWN0aW9u
IGEsIE5vZGVGbG93UHJvamVjdGlvbiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMg
Y29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsK
IH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZVR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGVUeXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1NCw3ICs1NTQs
NyBAQCBpbmxpbmUgYm9vbCBpc0F0b21pY3NJbnRyaW5zaWMoTm9kZVR5cGUgCiAgICAgfQogfQog
Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4TnVtRXh0cmFBdG9taWNzQXJncyA9IDI7CitzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIG1heE51bUV4dHJhQXRvbWljc0FyZ3MgPSAyOwogCiBpbmxp
bmUgdW5zaWduZWQgbnVtRXh0cmFBdG9taWNzQXJncyhOb2RlVHlwZSBvcCkKIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT2JqZWN0QWxsb2NhdGlvblNpbmtpbmdQaGFzZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPYmplY3RBbGxv
Y2F0aW9uU2lua2luZ1BoYXNlLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTQ4LDcgKzQ4LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewogbmFtZXNwYWNlIHsKIAogbmFtZXNwYWNlIERGR09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhh
c2VJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMg
Y29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiAvLyBJbiBvcmRlciB0byBzaW5r
IG9iamVjdCBjeWNsZXMsIHdlIHVzZSBhIHBvaW50cy10byBhbmFseXNpcyBjb3VwbGVkCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BoYW50b21JbnNlcnRpb25QaGFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQaGFudG9tSW5zZXJ0
aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1BoYW50b21JbnNlcnRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDQsNyArNDQs
NyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiBuYW1lc3BhY2UgewogCiBuYW1l
c3BhY2UgREZHUGhhbnRvbUluc2VydGlvblBoYXNlSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJv
b2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKIH0KIAogY2xhc3MgUGhhbnRvbUluc2VydGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJvbW90ZWRIZWFwTG9jYXRpb24uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Byb21vdGVkSGVhcExv
Y2F0aW9uLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUHJvbW90ZWRIZWFwTG9jYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEzOCw3ICsxMzgs
NyBAQCBwcml2YXRlOgogc3RydWN0IFByb21vdGVkTG9jYXRpb25EZXNjcmlwdG9ySGFzaCB7CiAg
ICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgUHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3Im
IGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0
IFByb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yJiBhLCBjb25zdCBQcm9tb3RlZExvY2F0aW9uRGVz
Y3JpcHRvciYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2Fm
ZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiBjbGFzcyBQ
cm9tb3RlZEhlYXBMb2NhdGlvbiB7CkBAIC0yMDQsNyArMjA0LDcgQEAgcHJpdmF0ZToKIHN0cnVj
dCBQcm9tb3RlZEhlYXBMb2NhdGlvbkhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNv
bnN0IFByb21vdGVkSGVhcExvY2F0aW9uJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAg
ICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBQcm9tb3RlZEhlYXBMb2NhdGlvbiYgYSwgY29uc3Qg
UHJvbW90ZWRIZWFwTG9jYXRpb24mIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBj
b25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwog
fTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpAQCAtMjIwLDcgKzIyMCw3IEBAIHRlbXBs
YXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPEpTQzo6REZHOjoKIAogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RydWN0IEhhc2hUcmFpdHM7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPEpTQzo6
REZHOjpQcm9tb3RlZEhlYXBMb2NhdGlvbj4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpE
Rkc6OlByb21vdGVkSGVhcExvY2F0aW9uPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlW
YWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVl
SXNaZXJvID0gZmFsc2U7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGVmYXVs
dEhhc2g7CkBAIC0yMzAsNyArMjMwLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8
SlNDOjpERkc6OgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRl
bXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpERkc6OlByb21vdGVkTG9jYXRpb25EZXNj
cmlwdG9yPiA6IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxKU0M6OkRGRzo6UHJvbW90ZWRMb2NhdGlv
bkRlc2NyaXB0b3I+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0g
ZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxz
ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQcm9wZXJ0eVR5cGVLZXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1Byb3BlcnR5VHlwZUtleS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Byb3BlcnR5VHlwZUtleS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTEwMyw3ICsxMDMsNyBAQCBwcml2YXRlOgogc3RydWN0IFByb3BlcnR5VHlwZUtleUhhc2ggewog
ICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFByb3BlcnR5VHlwZUtleSYga2V5KSB7IHJl
dHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgUHJvcGVydHlU
eXBlS2V5JiBhLCBjb25zdCBQcm9wZXJ0eVR5cGVLZXkmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQot
ICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1
ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSB0cnVlOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpAQCAtMTE3LDcgKzEx
Nyw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPEpTQzo6REZHOjoKIAogdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEhhc2hUcmFpdHM7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNo
VHJhaXRzPEpTQzo6REZHOjpQcm9wZXJ0eVR5cGVLZXk+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRz
PEpTQzo6REZHOjpQcm9wZXJ0eVR5cGVLZXk+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0
eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFs
dWVJc1plcm8gPSBmYWxzZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQdXJlVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1B1cmVWYWx1ZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1B1cmVWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE0
NSw3ICsxNDUsNyBAQCBwcml2YXRlOgogc3RydWN0IFB1cmVWYWx1ZUhhc2ggewogICAgIHN0YXRp
YyB1bnNpZ25lZCBoYXNoKGNvbnN0IFB1cmVWYWx1ZSYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgp
OyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgUHVyZVZhbHVlJiBhLCBjb25zdCBQdXJl
VmFsdWUmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVU
b0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkRGRwpAQCAtMTU5LDcgKzE1OSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IERl
ZmF1bHRIYXNoPEpTQzo6REZHOjoKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEhhc2hU
cmFpdHM7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPEpTQzo6REZHOjpQdXJlVmFsdWU+
IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6REZHOjpQdXJlVmFsdWU+IHsKLSAgICBzdGF0
aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdURgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQdXRTdGFja1NpbmtpbmdQ
aGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQdXRT
dGFja1NpbmtpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHV0U3RhY2tTaW5raW5nUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiBuYW1lc3Bh
Y2UgewogCiBuYW1lc3BhY2UgREZHUHV0U3RhY2tTaW5raW5nUGhhc2VJbnRlcm5hbCB7Ci1zdGF0
aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVy
Ym9zZSA9IGZhbHNlOwogfQogCiBjbGFzcyBQdXRTdGFja1NpbmtpbmdQaGFzZSA6IHB1YmxpYyBQ
aGFzZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlZ2lzdGVyQmFuay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVnaXN0ZXJCYW5r
LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVn
aXN0ZXJCYW5rLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjksMTAgKzY5LDEwIEBAIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKIHRlbXBsYXRlPGNsYXNzIEJhbmtJbmZvPgogY2xhc3MgUmVnaXN0
ZXJCYW5rIHsKICAgICB0eXBlZGVmIHR5cGVuYW1lIEJhbmtJbmZvOjpSZWdpc3RlclR5cGUgUmVn
SUQ7Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBOVU1fUkVHUyA9IEJhbmtJbmZvOjpudW1iZXJP
ZlJlZ2lzdGVyczsKKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBOVU1fUkVHUyA9IEJhbmtJ
bmZvOjpudW1iZXJPZlJlZ2lzdGVyczsKIAogICAgIHR5cGVkZWYgdWludDMyX3QgU3BpbGxIaW50
OwotICAgIHN0YXRpYyBjb25zdCBTcGlsbEhpbnQgU3BpbGxIaW50SW52YWxpZCA9IDB4ZmZmZmZm
ZmY7CisgICAgc3RhdGljIGNvbnN0ZXhwciBTcGlsbEhpbnQgU3BpbGxIaW50SW52YWxpZCA9IDB4
ZmZmZmZmZmY7CiAKIHB1YmxpYzoKICAgICBSZWdpc3RlckJhbmsoKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBQ29udmVyc2lvblBoYXNlLmNwcAkocmV2
aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FDb252ZXJz
aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsNyArNDgsNyBAQAogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBTU0FDb252ZXJzaW9uUGhhc2UgOiBwdWJs
aWMgUGhhc2UgewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAogcHVibGljOgogICAg
IFNTQUNvbnZlcnNpb25QaGFzZShHcmFwaCYgZ3JhcGgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBERkcgewogCiBjbGFzcyBTU0FMb3dlcmluZ1BoYXNlIDogcHVibGljIFBoYXNlIHsKLSAg
ICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAKIHB1YmxpYzoKICAgICBTU0FMb3dlcmluZ1Bo
YXNlKEdyYXBoJiBncmFwaCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYz
MCw3ICsyNjMwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURvdWJsZVJlcChObwog
ICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgaXNOdW1iZXIgPSBtX2ppdC5icmFuY2hJZk51
bWJlcihvcDFHUFIpOwogICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgaXNVbmRlZmluZWQg
PSBtX2ppdC5icmFuY2hJZlVuZGVmaW5lZChvcDFHUFIpOwogCi0gICAgICAgICAgICBzdGF0aWMg
Y29uc3QgZG91YmxlIHplcm8gPSAwOworICAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBkb3Vi
bGUgemVybyA9IDA7CiAgICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKFRydXN0ZWRJbW1QdHIo
Jnplcm8pLCByZXN1bHRGUFIpOwogCiAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc051
bGwgPSBtX2ppdC5icmFuY2hJZk51bGwob3AxR1BSKTsKQEAgLTI2NDAsNyArMjY0MCw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEb3VibGVSZXAoTm8KICAgICAgICAgICAgICAgICBt
X2ppdC5icmFuY2hUZXN0NjQoSklUQ29tcGlsZXI6Olplcm8sIG9wMUdQUiwgVHJ1c3RlZEltbTMy
KHN0YXRpY19jYXN0PGludDMyX3Q+KFRhZ0JpdEJvb2wpKSkpOwogCiAgICAgICAgICAgICBKSVRD
b21waWxlcjo6SnVtcCBpc0ZhbHNlID0gbV9qaXQuYnJhbmNoNjQoSklUQ29tcGlsZXI6OkVxdWFs
LCBvcDFHUFIsIFRydXN0ZWRJbW02NChWYWx1ZUZhbHNlKSk7Ci0gICAgICAgICAgICBzdGF0aWMg
Y29uc3QgZG91YmxlIG9uZSA9IDE7CisgICAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGRvdWJs
ZSBvbmUgPSAxOwogICAgICAgICAgICAgbV9qaXQubG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZv
bmUpLCByZXN1bHRGUFIpOwogICAgICAgICAgICAgZG9uZS5hcHBlbmQobV9qaXQuanVtcCgpKTsK
ICAgICAgICAgICAgIGRvbmUuYXBwZW5kKGlzRmFsc2UpOwpAQCAtMjY3OCw3ICsyNjc4LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURvdWJsZVJlcChObwogICAgICAgICAgICAgSklU
Q29tcGlsZXI6Okp1bXAgaXNOdW1iZXIgPSBtX2ppdC5icmFuY2gzMihKSVRDb21waWxlcjo6QmVs
b3csIG9wMVRhZ0dQUiwgSklUQ29tcGlsZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpMb3dlc3RU
YWcgKyAxKSk7CiAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc1VuZGVmaW5lZCA9IG1f
aml0LmJyYW5jaElmVW5kZWZpbmVkKG9wMVRhZ0dQUik7CiAKLSAgICAgICAgICAgIHN0YXRpYyBj
b25zdCBkb3VibGUgemVybyA9IDA7CisgICAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGRvdWJs
ZSB6ZXJvID0gMDsKICAgICAgICAgICAgIG1faml0LmxvYWREb3VibGUoVHJ1c3RlZEltbVB0cigm
emVybyksIHJlc3VsdEZQUik7CiAKICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGlzTnVs
bCA9IG1faml0LmJyYW5jaElmTnVsbChvcDFUYWdHUFIpOwpAQCAtMjY4Nyw3ICsyNjg3LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURvdWJsZVJlcChObwogICAgICAgICAgICAgREZH
X1RZUEVfQ0hFQ0soSlNWYWx1ZVJlZ3Mob3AxVGFnR1BSLCBvcDFQYXlsb2FkR1BSKSwgbm9kZS0+
Y2hpbGQxKCksIH5TcGVjQ2VsbCwgbV9qaXQuYnJhbmNoSWZOb3RCb29sZWFuKG9wMVRhZ0dQUiwg
SW52YWxpZEdQUlJlZykpOwogCiAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc0ZhbHNl
ID0gbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBpbGVyOjpaZXJvLCBvcDFQYXlsb2FkR1BSLCBU
cnVzdGVkSW1tMzIoMSkpOwotICAgICAgICAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBvbmUgPSAx
OworICAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgb25lID0gMTsKICAgICAgICAg
ICAgIG1faml0LmxvYWREb3VibGUoVHJ1c3RlZEltbVB0cigmb25lKSwgcmVzdWx0RlBSKTsKICAg
ICAgICAgICAgIGRvbmUuYXBwZW5kKG1faml0Lmp1bXAoKSk7CiAgICAgICAgICAgICBkb25lLmFw
cGVuZChpc0ZhbHNlKTsKQEAgLTI4MDcsOSArMjgwNyw5IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVD
bGFtcEludGVnZXJUb0J5dGUoSkkKIHN0YXRpYyB2b2lkIGNvbXBpbGVDbGFtcERvdWJsZVRvQnl0
ZShKSVRDb21waWxlciYgaml0LCBHUFJSZWcgcmVzdWx0LCBGUFJSZWcgc291cmNlLCBGUFJSZWcg
c2NyYXRjaCkKIHsKICAgICAvLyBVbm9yZGVyZWQgY29tcGFyZSBzbyB3ZSBwaWNrIHVwIE5hTgot
ICAgIHN0YXRpYyBjb25zdCBkb3VibGUgemVybyA9IDA7Ci0gICAgc3RhdGljIGNvbnN0IGRvdWJs
ZSBieXRlTWF4ID0gMjU1OwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgaGFsZiA9IDAuNTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIGRvdWJsZSB6ZXJvID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHBy
IGRvdWJsZSBieXRlTWF4ID0gMjU1OworICAgIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhhbGYg
PSAwLjU7CiAgICAgaml0LmxvYWREb3VibGUoSklUQ29tcGlsZXI6OlRydXN0ZWRJbW1QdHIoJnpl
cm8pLCBzY3JhdGNoKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCB0b29TbWFsbCA9IGppdC5i
cmFuY2hEb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUxlc3NUaGFuT3JFcXVhbE9yVW5vcmRl
cmVkLCBzb3VyY2UsIHNjcmF0Y2gpOwogICAgIGppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVyOjpU
cnVzdGVkSW1tUHRyKCZieXRlTWF4KSwgc2NyYXRjaCk7CkBAIC01NTk4LDcgKzU1OTgsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhSb3VuZGluCiAgICAgICAgICAgICAgICAg
RlBSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKICAgICAgICAgICAgICAgICBGUFJSZWcgcmVzdWx0
RlBSID0gcmVzdWx0LmZwcigpOwogICAgICAgICAgICAgICAgIGlmIChwcm9kdWNlc0ludGVnZXIo
bm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkgJiYgIXNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG5v
ZGUtPmFyaXRoUm91bmRpbmdNb2RlKCkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXRpYyBj
b25zdCBkb3VibGUgaGFsZkNvbnN0YW50ID0gMC41OworICAgICAgICAgICAgICAgICAgICBzdGF0
aWMgY29uc3RleHByIGRvdWJsZSBoYWxmQ29uc3RhbnQgPSAwLjU7CiAgICAgICAgICAgICAgICAg
ICAgIG1faml0LmxvYWREb3VibGUoVHJ1c3RlZEltbVB0cigmaGFsZkNvbnN0YW50KSwgcmVzdWx0
RlBSKTsKICAgICAgICAgICAgICAgICAgICAgbV9qaXQuYWRkRG91YmxlKHZhbHVlRlBSLCByZXN1
bHRGUFIpOwogICAgICAgICAgICAgICAgICAgICBtX2ppdC5mbG9vckRvdWJsZShyZXN1bHRGUFIs
IHJlc3VsdEZQUik7CkBAIC01NjA3LDEyICs1NjA3LDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVBcml0aFJvdW5kaW4KIAogICAgICAgICAgICAgICAgICAgICBGUFJUZW1wb3Jhcnkg
c2NyYXRjaCh0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBz
Y3JhdGNoLmZwcigpOwotICAgICAgICAgICAgICAgICAgICBzdGF0aWMgY29uc3QgZG91YmxlIGhh
bGZDb25zdGFudCA9IC0wLjU7CisgICAgICAgICAgICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIg
ZG91YmxlIGhhbGZDb25zdGFudCA9IC0wLjU7CiAgICAgICAgICAgICAgICAgICAgIG1faml0Lmxv
YWREb3VibGUoVHJ1c3RlZEltbVB0cigmaGFsZkNvbnN0YW50KSwgc2NyYXRjaEZQUik7CiAgICAg
ICAgICAgICAgICAgICAgIG1faml0LmFkZERvdWJsZShyZXN1bHRGUFIsIHNjcmF0Y2hGUFIpOwog
CiAgICAgICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIHNob3VsZFVzZUNlaWxlZCA9
IG1faml0LmJyYW5jaERvdWJsZShKSVRDb21waWxlcjo6RG91YmxlTGVzc1RoYW5PckVxdWFsLCBz
Y3JhdGNoRlBSLCB2YWx1ZUZQUik7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBk
b3VibGUgb25lQ29uc3RhbnQgPSAtMS4wOworICAgICAgICAgICAgICAgICAgICBzdGF0aWMgY29u
c3RleHByIGRvdWJsZSBvbmVDb25zdGFudCA9IC0xLjA7CiAgICAgICAgICAgICAgICAgICAgIG1f
aml0LmxvYWREb3VibGUoVHJ1c3RlZEltbVB0cigmb25lQ29uc3RhbnQpLCBzY3JhdGNoRlBSKTsK
ICAgICAgICAgICAgICAgICAgICAgbV9qaXQuYWRkRG91YmxlKHNjcmF0Y2hGUFIsIHJlc3VsdEZQ
Uik7CiAgICAgICAgICAgICAgICAgICAgIHNob3VsZFVzZUNlaWxlZC5saW5rKCZtX2ppdCk7CkBA
IC01ODAyLDcgKzU4MDIsNyBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgY29tcGlsZUFy
aXRoCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNraXBGYXN0UGF0aDsKICAgICBza2lw
RmFzdFBhdGguYXBwZW5kKGFzc2VtYmxlci5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmUs
IHlPcGVyYW5kLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG1heEV4cG9uZW50Rm9ySW50
ZWdlck1hdGhQb3cpKSk7CiAKLSAgICBzdGF0aWMgY29uc3QgZG91YmxlIG9uZUNvbnN0YW50ID0g
MS4wOworICAgIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIG9uZUNvbnN0YW50ID0gMS4wOwogICAg
IGFzc2VtYmxlci5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZvbmVD
b25zdGFudCksIHJlc3VsdCk7CiAKICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgc3RhcnRMb29w
KGFzc2VtYmxlci5sYWJlbCgpKTsKQEAgLTU4OTMsOCArNTg5Myw4IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVBcml0aFBvdyhOb2QKIAogICAgIGlmIChub2RlLT5jaGlsZDIoKS0+aXNE
b3VibGVDb25zdGFudCgpKSB7CiAgICAgICAgIGRvdWJsZSBleHBvbmVudCA9IG5vZGUtPmNoaWxk
MigpLT5hc051bWJlcigpOwotICAgICAgICBzdGF0aWMgY29uc3QgZG91YmxlIGluZmluaXR5Q29u
c3RhbnQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7Ci0gICAgICAg
IHN0YXRpYyBjb25zdCBkb3VibGUgbWludXNJbmZpbml0eUNvbnN0YW50ID0gLXN0ZDo6bnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBk
b3VibGUgaW5maW5pdHlDb25zdGFudCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5m
aW5pdHkoKTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbWludXNJbmZpbml0eUNv
bnN0YW50ID0gLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKICAgICAg
ICAgaWYgKGV4cG9uZW50ID09IDAuNSkgewogICAgICAgICAgICAgU3BlY3VsYXRlRG91YmxlT3Bl
cmFuZCB4T3BlcmFuZCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBGUFJUZW1w
b3JhcnkgcmVzdWx0KHRoaXMpOwpAQCAtNTkzNCw3ICs1OTM0LDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUFyaXRoUG93KE5vZAogICAgICAgICAgICAgbV9qaXQubG9hZERvdWJsZShU
cnVzdGVkSW1tUHRyKCZtaW51c0luZmluaXR5Q29uc3RhbnQpLCByZXN1bHRGcHIpOwogICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgeElzTWludXNJbmZpbml0eSA9IG1faml0LmJyYW5j
aERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlRXF1YWwsIHhPcGVyYW5kRnByLCByZXN1bHRG
cHIpOwogCi0gICAgICAgICAgICBzdGF0aWMgY29uc3QgZG91YmxlIG9uZUNvbnN0YW50ID0gMS47
CisgICAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBvbmVDb25zdGFudCA9IDEuOwog
ICAgICAgICAgICAgbV9qaXQubG9hZERvdWJsZShUcnVzdGVkSW1tUHRyKCZvbmVDb25zdGFudCks
IHJlc3VsdEZwcik7CiAgICAgICAgICAgICBtX2ppdC5zcXJ0RG91YmxlKHhPcGVyYW5kRnByLCBz
Y3JhdGNoRlBSKTsKICAgICAgICAgICAgIG1faml0LmRpdkRvdWJsZShyZXN1bHRGcHIsIHNjcmF0
Y2hGUFIsIHJlc3VsdEZwcik7CkBAIC0xMDc4NSw3ICsxMDc4NSw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmVtaXRCaW5hcnlTd2l0Y2hTdHIKICAgICB1bnNpZ25lZCBudW1DaGVja2VkLCB1bnNp
Z25lZCBiZWdpbiwgdW5zaWduZWQgZW5kLCBHUFJSZWcgYnVmZmVyLCBHUFJSZWcgbGVuZ3RoLAog
ICAgIEdQUlJlZyB0ZW1wLCB1bnNpZ25lZCBhbHJlYWR5Q2hlY2tlZExlbmd0aCwgYm9vbCBjaGVj
a2VkRXhhY3RMZW5ndGgpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCiAgICAg
aWYgKHZlcmJvc2UpIHsKICAgICAgICAgZGF0YUxvZygiV2UncmUgZG93biB0byB0aGUgZm9sbG93
aW5nIGNhc2VzLCBhbHJlYWR5Q2hlY2tlZExlbmd0aCA9ICIsIGFscmVhZHlDaGVja2VkTGVuZ3Ro
LCAiOlxuIik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0YWNrTGF5b3V0
UGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Rh
Y2tMYXlvdXRQaGFzZS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw3
ICszNiw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNzIFN0YWNr
TGF5b3V0UGhhc2UgOiBwdWJsaWMgUGhhc2UgewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJv
c2UgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwog
ICAgIAogcHVibGljOgogICAgIFN0YWNrTGF5b3V0UGhhc2UoR3JhcGgmIGdyYXBoKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJp
ZXJJbnNlcnRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiBu
YW1lc3BhY2UgewogCiBuYW1lc3BhY2UgREZHU3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhhc2VJbnRl
cm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3Rl
eHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCiBlbnVtIGNsYXNzIFBoYXNlTW9kZSB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhS
ZWR1Y3Rpb25QaGFzZS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC00NSw3ICs0NSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNz
IFN0cmVuZ3RoUmVkdWN0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewotICAgIHN0YXRpYyBjb25z
dCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogICAgIAogcHVibGljOgogICAgIFN0cmVuZ3RoUmVkdWN0aW9uUGhhc2UoR3Jh
cGgmIGdyYXBoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVB
YnN0cmFjdFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjUxLDEwICsyNTEsMTAgQEAgcHVibGljOgogICAgIHZvaWQgdmFsaWRhdGVSZWZl
cmVuY2VzKGNvbnN0IFRyYWNrZWRSZWZlcmVuY2VzJikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgot
ICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3QgY2xvYmJlcmVkRmxhZyA9IFJlZ2lzdGVyZWRTdHJ1
Y3R1cmVTZXQ6OnJlc2VydmVkRmxhZzsKLSAgICBzdGF0aWMgY29uc3QgdWludHB0cl90IHRvcFZh
bHVlID0gUmVnaXN0ZXJlZFN0cnVjdHVyZVNldDo6cmVzZXJ2ZWRWYWx1ZTsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgcG9seW1vcnBoaXNtTGltaXQgPSAxMDsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgY2xvYmJlcmVkU3VwcmVtYWN5VGhyZXNob2xkID0gMjsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVpbnRwdHJfdCBjbG9iYmVyZWRGbGFnID0gUmVnaXN0ZXJlZFN0cnVjdHVyZVNldDo6
cmVzZXJ2ZWRGbGFnOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IHRvcFZhbHVlID0g
UmVnaXN0ZXJlZFN0cnVjdHVyZVNldDo6cmVzZXJ2ZWRWYWx1ZTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIHBvbHltb3JwaGlzbUxpbWl0ID0gMTA7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBjbG9iYmVyZWRTdXByZW1hY3lUaHJlc2hvbGQgPSAyOwogICAgIAogICAgIHZv
aWQgZmlsdGVyU2xvdyhTcGVjdWxhdGVkVHlwZSB0eXBlKTsKICAgICB2b2lkIGZpbHRlckNsYXNz
SW5mb1Nsb3coY29uc3QgQ2xhc3NJbmZvKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ZhcmFyZ3NGb3J3YXJkaW5nUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyYXJnc0ZvcndhcmRpbmdQaGFzZS5jcHAJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyYXJnc0ZvcndhcmRp
bmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKIG5hbWVzcGFjZSB7CiAKIG5hbWVzcGFjZSBERkdWYXJhcmdz
Rm9yd2FyZGluZ1BoYXNlSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZh
bHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogY2xhc3Mg
VmFyYXJnc0ZvcndhcmRpbmdQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVF
dmVudFN0cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjMsNyArMTIzLDcgQEAgdW5zaWdu
ZWQgVmFyaWFibGVFdmVudFN0cmVhbTo6cmVjb25zdHJ1YwogICAgIENvZGVCbG9jayogYmFzZWxp
bmVDb2RlQmxvY2sgPSBjb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigpOwogCiAgICAgdW5zaWdu
ZWQgbnVtVmFyaWFibGVzOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnZhbGlkSW5kZXgg
PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBpbnZhbGlkSW5kZXggPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVk
Pjo6bWF4KCk7CiAgICAgdW5zaWduZWQgZmlyc3RVbmRlZmluZWQgPSBpbnZhbGlkSW5kZXg7CiAg
ICAgYm9vbCBmaXJzdFVuZGVmaW5lZElzQXJndW1lbnQgPSBmYWxzZTsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXYXRjaHBvaW50Q29sbGVjdGlvblBoYXNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dhdGNocG9pbnRDb2xsZWN0
aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1dhdGNocG9pbnRDb2xsZWN0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NDUsNyArNDUsNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBX
YXRjaHBvaW50Q29sbGVjdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKLSAgICBzdGF0aWMgY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJv
c2UgPSBmYWxzZTsKICAgICAKIHB1YmxpYzoKICAgICBXYXRjaHBvaW50Q29sbGVjdGlvblBoYXNl
KEdyYXBoJiBncmFwaCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIv
QVJNNjQvQTY0RE9wY29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
aXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0xOTUsNyArMTk1LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBidWZmZXJQ
cmludGYoImxzbCAjJXUiLCAxNiAqIGFtb3VudCk7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0
IGludCBidWZmZXJTaXplID0gODE7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgYnVmZmVyU2l6
ZSA9IDgxOwogCiAgICAgY2hhciBtX2Zvcm1hdEJ1ZmZlcltidWZmZXJTaXplXTsKICAgICB1aW50
MzJfdCogbV9jdXJyZW50UEM7CkBAIC0yMjcsOCArMjI3LDggQEAgcHVibGljOgogCiBjbGFzcyBB
NjRET3Bjb2RlQWRkU3VidHJhY3RJbW1lZGlhdGUgOiBwdWJsaWMgQTY0RE9wY29kZUFkZFN1YnRy
YWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4MWYwMDAw
MDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDExMDAwMDAwOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4MWYwMDAwMDA7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHgxMTAwMDAwMDsKIAogICAgIERFRklORV9T
VEFUSUNfRk9STUFUKEE2NERPcGNvZGVBZGRTdWJ0cmFjdEltbWVkaWF0ZSwgdGhpc09iaik7CiAK
QEAgLTI0MSw4ICsyNDEsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEE2NERPcGNvZGVBZGRTdWJ0cmFj
dEV4dGVuZGVkUmVnaXN0ZXIgOiBwdWJsaWMgQTY0RE9wY29kZUFkZFN1YnRyYWN0IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4MWZlMDAwMDA7Ci0gICAgc3Rh
dGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDBiMjAwMDAwOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludDMyX3QgbWFzayA9IDB4MWZlMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50MzJfdCBwYXR0ZXJuID0gMHgwYjIwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFU
KEE2NERPcGNvZGVBZGRTdWJ0cmFjdEV4dGVuZGVkUmVnaXN0ZXIsIHRoaXNPYmopOwogCkBAIC0y
NTMsOCArMjUzLDggQEAgcHVibGljOgogCiBjbGFzcyBBNjRET3Bjb2RlQWRkU3VidHJhY3RTaGlm
dGVkUmVnaXN0ZXIgOiBwdWJsaWMgQTY0RE9wY29kZUFkZFN1YnRyYWN0IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4MWYyMDAwMDA7Ci0gICAgc3RhdGljIGNv
bnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDBiMDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludDMyX3QgbWFzayA9IDB4MWYyMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJf
dCBwYXR0ZXJuID0gMHgwYjAwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERP
cGNvZGVBZGRTdWJ0cmFjdFNoaWZ0ZWRSZWdpc3RlciwgdGhpc09iaik7CiAKQEAgLTI3NCw4ICsy
NzQsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBzX2V4dHJhY3RP
cE5hbWVzWzNdOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAw
eDFmODAwMDAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHgxMzAwMDAw
MDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweDFmODAwMDAwOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4MTMwMDAwMDA7CiAKICAgICBE
RUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlQml0ZmllbGQsIHRoaXNPYmopOwogCkBAIC0y
OTQsOCArMjk0LDggQEAgcHVibGljOgogCiBjbGFzcyBBNjRET3Bjb2RlQ29tcGFyZUFuZEJyYW5j
aEltbWVkaWF0ZSA6IHB1YmxpYyBBNjRET3Bjb2RlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3QgdWludDMyX3QgbWFzayA9IDB4N2UwMDAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90
IHBhdHRlcm4gPSAweDM0MDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFz
ayA9IDB4N2UwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0g
MHgzNDAwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVDb21wYXJl
QW5kQnJhbmNoSW1tZWRpYXRlLCB0aGlzT2JqKTsKIApAQCAtMzA3LDggKzMwNyw4IEBAIHB1Ymxp
YzoKIAogY2xhc3MgQTY0RE9wY29kZUNvbmRpdGlvbmFsQnJhbmNoSW1tZWRpYXRlIDogcHVibGlj
IEE2NERPcGNvZGUgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0g
MHhmZjAwMDAxMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4NTQwMDAw
MDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHhmZjAwMDAxMDsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDU0MDAwMDAwOwogCiAgICAg
REVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUNvbmRpdGlvbmFsQnJhbmNoSW1tZWRpYXRl
LCB0aGlzT2JqKTsKIApAQCAtMzIzLDggKzMyMyw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNv
bnN0IGNoYXIqIGNvbnN0IHNfb3BOYW1lc1s0XTsKIAogcHVibGljOgotICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBtYXNrID0gMHgxZmUwMDAwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qg
cGF0dGVybiA9IDB4MWE4MDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNr
ID0gMHgxZmUwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAw
eDFhODAwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUNvbmRpdGlv
bmFsU2VsZWN0LCB0aGlzT2JqKTsKIApAQCAtMzQ0LDggKzM0NCw4IEBAIHByaXZhdGU6CiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNfcGFjQXV0T3BOYW1lc1sxOF07CiAgICAgCiBwdWJs
aWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDVmZTAwMDAwOwotICAgIHN0
YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHg1YWMwMDAwMDsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVpbnQzMl90IG1hc2sgPSAweDVmZTAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludDMyX3QgcGF0dGVybiA9IDB4NWFjMDAwMDA7CiAgICAgCiAgICAgREVGSU5FX1NUQVRJQ19G
T1JNQVQoQTY0RE9wY29kZURhdGFQcm9jZXNzaW5nMVNvdXJjZSwgdGhpc09iaik7CiAgICAgCkBA
IC0zNjMsOCArMzYzLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qg
c19vcE5hbWVzWzE2XTsKIAogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNr
ID0gMHg1ZmUwMDAwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MWFj
MDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHg1ZmUwMDAwMDsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDFhYzAwMDAwOwogCiAg
ICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZURhdGFQcm9jZXNzaW5nMlNvdXJjZSwg
dGhpc09iaik7CiAKQEAgLTM4Miw4ICszODIsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCBzX3BzZXVkb09wTmFtZXNbMTZdOwogCiBwdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDFmMDAwMDAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50
MzJfdCBwYXR0ZXJuID0gMHgxYjAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90
IG1hc2sgPSAweDFmMDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVy
biA9IDB4MWIwMDAwMDA7CiAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlRGF0
YVByb2Nlc3NpbmczU291cmNlLCB0aGlzT2JqKTsKIApAQCAtMzk5LDggKzM5OSw4IEBAIHB1Ymxp
YzoKIAogY2xhc3MgQTY0T3Bjb2RlRXhjZXB0aW9uR2VuZXJhdGlvbiA6IHB1YmxpYyBBNjRET3Bj
b2RlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4ZmYwMDAw
MDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweGQ0MDAwMDAwOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4ZmYwMDAwMDA7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHhkNDAwMDAwMDsKIAogICAgIERFRklORV9T
VEFUSUNfRk9STUFUKEE2NE9wY29kZUV4Y2VwdGlvbkdlbmVyYXRpb24sIHRoaXNPYmopOwogCkBA
IC00MTQsOCArNDE0LDggQEAgcHVibGljOgogCiBjbGFzcyBBNjRET3Bjb2RlRXh0cmFjdCA6IHB1
YmxpYyBBNjRET3Bjb2RlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFz
ayA9IDB4MWY4MDAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDEz
ODAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4MWY4MDAwMDA7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHgxMzgwMDAwMDsKIAog
ICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVFeHRyYWN0LCB0aGlzT2JqKTsKIApA
QCAtNDM5LDggKzQzOSw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0
IHNfb3BOYW1lc1sxNl07CiAgICAgCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90
IG1hc2sgPSAweDVmMjAzYzAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0g
MHgxZTIwMjAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweDVmMjAz
YzAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4MWUyMDIwMDA7
CiAgICAgCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29kZUZsb2F0aW5nUG9pbnRD
b21wYXJlLCB0aGlzT2JqKTsKICAgICAKQEAgLTQ1NSw4ICs0NTUsOCBAQCBwdWJsaWM6CiAKIGNs
YXNzIEE2NERPcGNvZGVGbG9hdGluZ1BvaW50Q29uZGl0aW9uYWxTZWxlY3QgOiBwdWJsaWMgQTY0
RE9wY29kZUZsb2F0aW5nUG9pbnRPcHMgewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50
MzJfdCBtYXNrID0gMHg1ZjIwMGMwMDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVy
biA9IDB4MWUyMDBjMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHg1
ZjIwMGMwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDFlMjAw
YzAwOwogICAgIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVGbG9hdGluZ1Bv
aW50Q29uZGl0aW9uYWxTZWxlY3QsIHRoaXNPYmopOwogICAgIApAQCAtNDcyLDggKzQ3Miw4IEBA
IHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNfb3BOYW1lc1sxNl07CiAK
IHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4NWYyMDdjMDA7Ci0g
ICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDFlMjA0MDAwOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4NWYyMDdjMDA7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHgxZTIwNDAwMDsKIAogICAgIERFRklORV9TVEFUSUNf
Rk9STUFUKEE2NERPcGNvZGVGbG9hdGluZ1BvaW50RGF0YVByb2Nlc3NpbmcxU291cmNlLCB0aGlz
T2JqKTsKIApAQCAtNDg5LDggKzQ4OSw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGNo
YXIqIGNvbnN0IHNfb3BOYW1lc1sxNl07CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWlu
dDMyX3QgbWFzayA9IDB4NWYyMDA4MDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRl
cm4gPSAweDFlMjAwODAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4
NWYyMDA4MDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHgxZTIw
MDgwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVGbG9hdGluZ1BvaW50
RGF0YVByb2Nlc3NpbmcyU291cmNlLCB0aGlzT2JqKTsKIApAQCAtNTA2LDggKzUwNiw4IEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNfb3BOYW1lc1s0XTsKICAgICAK
IHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4NWYyMDAwMDA7Ci0g
ICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDFlMDAwMDAwOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4NWYyMDAwMDA7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHgxZTAwMDAwMDsKICAgICAKICAgICBERUZJTkVfU1RB
VElDX0ZPUk1BVChBNjRET3Bjb2RlRmxvYXRpbmdGaXhlZFBvaW50Q29udmVyc2lvbnMsIHRoaXNP
YmopOwogICAgIApAQCAtNTI1LDggKzUyNSw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0
IGNoYXIqIGNvbnN0IHNfb3BOYW1lc1szMl07CiAgICAgCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0IHVpbnQzMl90IG1hc2sgPSAweDVmMjBmYzAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJf
dCBwYXR0ZXJuID0gMHgxZTIwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1h
c2sgPSAweDVmMjBmYzAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9
IDB4MWUyMDAwMDA7CiAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlRmxvYXRp
bmdQb2ludEludGVnZXJDb252ZXJzaW9ucywgdGhpc09iaik7CiAKQEAgLTU1MCw4ICs1NTAsOCBA
QCBwdWJsaWM6CiAKIGNsYXNzIEE2NERPcGNvZGVNU1JJbW1lZGlhdGUgOiBwdWJsaWMgQTY0RE9w
Y29kZVN5c3RlbSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAw
eGZmZjhmMDFmOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHhkNTAwNDAx
ZjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweGZmZjhmMDFmOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4ZDUwMDQwMWY7CiAKICAgICBE
RUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlTVNSSW1tZWRpYXRlLCB0aGlzT2JqKTsKIApA
QCAtNTYwLDggKzU2MCw4IEBAIHB1YmxpYzoKIAogY2xhc3MgQTY0RE9wY29kZU1TUk9yTVJTUmVn
aXN0ZXIgOiBwdWJsaWMgQTY0RE9wY29kZVN5c3RlbSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0IHVpbnQzMl90IG1hc2sgPSAweGZmZDAwMDAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJf
dCBwYXR0ZXJuID0gMHhkNTEwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1h
c2sgPSAweGZmZDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9
IDB4ZDUxMDAwMDA7CiAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlTVNST3JN
UlNSZWdpc3RlciwgdGhpc09iaik7CiAKQEAgLTU3Niw4ICs1NzYsOCBAQCBwcml2YXRlOgogICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBzX29wTmFtZXNbMzJdOwogCiBwdWJsaWM6Ci0gICAg
c3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweGZmZmZmMDFmOwotICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBwYXR0ZXJuID0gMHhkNTAzMjAxZjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVp
bnQzMl90IG1hc2sgPSAweGZmZmZmMDFmOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3Qg
cGF0dGVybiA9IDB4ZDUwMzIwMWY7CiAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bj
b2RlSGludCwgdGhpc09iaik7CiAKQEAgLTU5Miw4ICs1OTIsOCBAQCBjbGFzcyBBNjRET3Bjb2Rl
U3lzdGVtU3luYyA6IHB1YmxpYyBBNjRECiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNf
b3B0aW9uTmFtZXNbMTZdOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1h
c2sgPSAweGZmZmZmMDFmOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHhk
NTAzMzAxZjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweGZmZmZmMDFm
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4ZDUwMzMwMWY7CiAK
ICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlU3lzdGVtU3luYywgdGhpc09iaik7
CiAKQEAgLTYyNSw4ICs2MjUsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBj
b25zdCBzX29wTmFtZXNbNjRdOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90
IG1hc2sgPSAweDNmMDAwMDAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0g
MHgwODAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweDNmMDAw
MDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4MDgwMDAwMDA7
CiAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlTG9hZFN0b3JlRXhjbHVzaXZl
LCB0aGlzT2JqKTsKIApAQCAtNjUzLDggKzY1Myw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNv
bnN0IGNoYXIqIGNvbnN0IHNfdW5zY2FsZWRPcE5hbWVzWzMyXTsKIAogcHVibGljOgotICAgIHN0
YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHgzYjIwMDAwMDsKLSAgICBzdGF0aWMgY29uc3Qg
dWludDMyX3QgcGF0dGVybiA9IDB4MzgwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50
MzJfdCBtYXNrID0gMHgzYjIwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHBh
dHRlcm4gPSAweDM4MDAwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19GT1JNQVQoQTY0RE9wY29k
ZUxvYWRTdG9yZUltbWVkaWF0ZSwgdGhpc09iaik7CiAKQEAgLTY3NCw4ICs2NzQsOCBAQCBwdWJs
aWM6CiAKIGNsYXNzIEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3Rlck9mZnNldCA6IHB1YmxpYyBB
NjRET3Bjb2RlTG9hZFN0b3JlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qg
bWFzayA9IDB4M2IyMDBjMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAw
eDM4MjAwODAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4M2IyMDBj
MDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHgzODIwMDgwMDsK
IAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3Rlck9m
ZnNldCwgdGhpc09iaik7CiAKQEAgLTY5Niw4ICs2OTYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgfQog
CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweGZmMjAwNDAwOwot
ICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHhmODIwMDQwMDsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweGZmMjAwNDAwOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4ZjgyMDA0MDA7CiAgICAgCiAgICAgREVGSU5FX1NU
QVRJQ19GT1JNQVQoQTY0RE9wY29kZUxvYWRTdG9yZUF1dGhlbnRpY2F0ZWQsIHRoaXNPYmopOwog
ICAgIApAQCAtNzEzLDggKzcxMyw4IEBAIHB1YmxpYzoKIAogY2xhc3MgQTY0RE9wY29kZUxvYWRT
dG9yZVJlZ2lzdGVyUGFpciA6IHB1YmxpYyBBNjRET3Bjb2RlTG9hZFN0b3JlIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4M2EwMDAwMDA7Ci0gICAgc3RhdGlj
IGNvbnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDI4MDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdWludDMyX3QgbWFzayA9IDB4M2EwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50
MzJfdCBwYXR0ZXJuID0gMHgyODAwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2
NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXIsIHRoaXNPYmopOwogCkBAIC03MjksOCArNzI5
LDggQEAgcHVibGljOgogCiBjbGFzcyBBNjRET3Bjb2RlTG9hZFN0b3JlVW5zaWduZWRJbW1lZGlh
dGUgOiBwdWJsaWMgQTY0RE9wY29kZUxvYWRTdG9yZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0IHVpbnQzMl90IG1hc2sgPSAweDNiMDAwMDAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJf
dCBwYXR0ZXJuID0gMHgzOTAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1h
c2sgPSAweDNiMDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9
IDB4MzkwMDAwMDA7CiAKICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlTG9hZFN0
b3JlVW5zaWduZWRJbW1lZGlhdGUsIHRoaXNPYmopOwogCkBAIC03NTUsOCArNzU1LDggQEAgcHVi
bGljOgogCiBjbGFzcyBBNjRET3Bjb2RlTG9naWNhbEltbWVkaWF0ZSA6IHB1YmxpYyBBNjRET3Bj
b2RlTG9naWNhbCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAw
eDFmODAwMDAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHgxMjAwMDAw
MDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweDFmODAwMDAwOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4MTIwMDAwMDA7CiAKICAgICBE
RUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlTG9naWNhbEltbWVkaWF0ZSwgdGhpc09iaik7
CiAKQEAgLTc3Miw4ICs3NzIsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEE2NERPcGNvZGVMb2dpY2Fs
U2hpZnRlZFJlZ2lzdGVyIDogcHVibGljIEE2NERPcGNvZGVMb2dpY2FsIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgbWFzayA9IDB4MWYwMDAwMDA7Ci0gICAgc3RhdGljIGNv
bnN0IHVpbnQzMl90IHBhdHRlcm4gPSAweDBhMDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludDMyX3QgbWFzayA9IDB4MWYwMDAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJf
dCBwYXR0ZXJuID0gMHgwYTAwMDAwMDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERP
cGNvZGVMb2dpY2FsU2hpZnRlZFJlZ2lzdGVyLCB0aGlzT2JqKTsKIApAQCAtNzkxLDggKzc5MSw4
IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNfb3BOYW1lc1s0XTsK
IAogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHgxZjgwMDAwMDsK
LSAgICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MTI4MDAwMDA7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHgxZjgwMDAwMDsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDEyODAwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJ
Q19GT1JNQVQoQTY0RE9wY29kZU1vdmVXaWRlLCB0aGlzT2JqKTsKIApAQCAtODA2LDggKzgwNiw4
IEBAIHB1YmxpYzoKIAogY2xhc3MgQTY0RE9wY29kZVRlc3RBbmRCcmFuY2hJbW1lZGlhdGUgOiBw
dWJsaWMgQTY0RE9wY29kZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1h
c2sgPSAweDdlMDAwMDAwOwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHgz
NjAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IG1hc2sgPSAweDdlMDAwMDAw
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgcGF0dGVybiA9IDB4MzYwMDAwMDA7CiAK
ICAgICBERUZJTkVfU1RBVElDX0ZPUk1BVChBNjRET3Bjb2RlVGVzdEFuZEJyYW5jaEltbWVkaWF0
ZSwgdGhpc09iaik7CiAKQEAgLTgyMCw4ICs4MjAsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEE2NERP
cGNvZGVVbmNvbmRpdGlvbmFsQnJhbmNoSW1tZWRpYXRlIDogcHVibGljIEE2NERPcGNvZGUgewog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBtYXNrID0gMHg3YzAwMDAwMDsKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3QgcGF0dGVybiA9IDB4MTQwMDAwMDA7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1aW50MzJfdCBtYXNrID0gMHg3YzAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVpbnQzMl90IHBhdHRlcm4gPSAweDE0MDAwMDAwOwogCiAgICAgREVGSU5FX1NUQVRJQ19G
T1JNQVQoQTY0RE9wY29kZVVuY29uZGl0aW9uYWxCcmFuY2hJbW1lZGlhdGUsIHRoaXNPYmopOwog
CkBAIC04MzcsOCArODM3LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29u
c3Qgc19BdXRoT3BOYW1lc1syMF07CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdWludDMy
X3QgbWFzayA9IDB4ZmUxZjAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBhdHRlcm4g
PSAweGQ2MWYwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgbWFzayA9IDB4ZmUx
ZjAwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBwYXR0ZXJuID0gMHhkNjFmMDAw
MDsKIAogICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVVbmNvbmRpdGlvbmFsQnJh
bmNoUmVnaXN0ZXIsIHRoaXNPYmopOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb2NhdGlvbi5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvY2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEzLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xOTEsNyArMTkxLDcgQEAgcHJp
dmF0ZToKIHN0cnVjdCBMb2NhdGlvbkhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNv
bnN0IExvY2F0aW9uJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9v
bCBlcXVhbChjb25zdCBMb2NhdGlvbiYgYSwgY29uc3QgTG9jYXRpb24mIGIpIHsgcmV0dXJuIGEg
PT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxl
dGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1w
dHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkocmV2
aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTI5LDcgKzI5MjksNyBAQCBwcml2YXRlOgogCiAg
ICAgICAgIC8vIENvbnZlcnQgYCg1M2JpdCBkb3VibGUgaW50ZWdlciB2YWx1ZSkgLyAoMSA8PCA1
MylgIHRvIGAoNTNiaXQgZG91YmxlIGludGVnZXIgdmFsdWUpICogKDEuMCAvICgxIDw8IDUzKSlg
LgogICAgICAgICAvLyBJbiBsYXR0ZXIgY2FzZSwgYDEuMCAvICgxIDw8IDUzKWAgd2lsbCBiZWNv
bWUgYSBkb3VibGUgdmFsdWUgcmVwcmVzZW50ZWQgYXMgKG1hbnRpc3NhID0gMCAmIGV4cCA9IDk3
MCwgaXQgbWVhbnMgMWUtKDIqKjU0KSkuCi0gICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgc2Nh
bGUgPSAxLjAgLyAoMVVMTCA8PCA1Myk7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgZG91Ymxl
IHNjYWxlID0gMS4wIC8gKDFVTEwgPDwgNTMpOwogCiAgICAgICAgIC8vIE11bHRpcGx5aW5nIDFl
LSgyKio1NCkgd2l0aCB0aGUgZG91YmxlIGludGVnZXIgZG9lcyBub3QgY2hhbmdlIGFueXRoaW5n
IG9mIHRoZSBtYW50aXNzYSBwYXJ0IG9mIHRoZSBkb3VibGUgaW50ZWdlci4KICAgICAgICAgLy8g
SXQganVzdCByZWR1Y2VzIHRoZSBleHAgcGFydCBvZiB0aGUgZ2l2ZW4gNTNiaXQgZG91YmxlIGlu
dGVnZXIuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENh
bGwuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFNsb3dQYXRoQ2FsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw3ICszNyw3IEBACiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKIC8vIFRoaXMgY29kZSByZWxpZXMgb24gdXMg
YmVpbmcgNjQtYml0LiBGVEwgaXMgY3VycmVudGx5IGFsd2F5cyA2NC1iaXQuCi1zdGF0aWMgY29u
c3Qgc2l6ZV90IHdvcmRTaXplID0gODsKK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHdvcmRTaXpl
ID0gODsKIAogU2xvd1BhdGhDYWxsQ29udGV4dDo6U2xvd1BhdGhDYWxsQ29udGV4dCgKICAgICBS
ZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzLCBDQ2FsbEhlbHBlcnMmIGppdCwgdW5zaWduZWQgbnVt
QXJncywgR1BSUmVnIHJldHVyblJlZ2lzdGVyKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExTbG93UGF0aENhbGxLZXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbEtleS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbEtleS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMTEwLDcgKzExMCw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgU2xvd1BhdGhDYWxsS2V5SGFz
aCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgU2xvd1BhdGhDYWxsS2V5JiBrZXkp
IHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBTbG93
UGF0aENhbGxLZXkmIGEsIGNvbnN0IFNsb3dQYXRoQ2FsbEtleSYgYikgeyByZXR1cm4gYSA9PSBi
OyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQg
PSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlP
ckRlbGV0ZWQgPSBmYWxzZTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NlbGxDb250YWluZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9DZWxsQ29udGFpbmVyLmgJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NlbGxDb250YWluZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgV2Vha1NldCYgd2Vha1Nl
dCgpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3QgdWludHB0cl90IGlz
TGFyZ2VBbGxvY2F0aW9uQml0ID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBp
c0xhcmdlQWxsb2NhdGlvbkJpdCA9IDE7CiAgICAgdWludHB0cl90IG1fZW5jb2RlZFBvaW50ZXI7
CiB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9DZWxsU3RhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9DZWxsU3RhdGUuaAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ2VsbFN0YXRlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC00NSw4ICs0NSw4IEBAIGVudW0gY2xhc3MgQ2VsbFN0YXRlIDogdWlu
dDhfdCB7CiAgICAgUG9zc2libHlHcmV5ID0gMgogfTsKIAotc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGJsYWNrVGhyZXNob2xkID0gMDsgLy8geCA8PSBibGFja1RocmVzaG9sZCBtZWFucyB4IGlzIFBv
c3NpYmx5T2xkT3JCbGFjay4KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCB0YXV0b2xvZ2ljYWxUaHJl
c2hvbGQgPSAxMDA7IC8vIHggPD0gdGF1dG9sb2dpY2FsVGhyZXNob2xkIGlzIGFsd2F5cyB0cnVl
Lgorc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBibGFja1RocmVzaG9sZCA9IDA7IC8vIHggPD0g
YmxhY2tUaHJlc2hvbGQgbWVhbnMgeCBpcyBQb3NzaWJseU9sZE9yQmxhY2suCitzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIHRhdXRvbG9naWNhbFRocmVzaG9sZCA9IDEwMDsgLy8geCA8PSB0YXV0
b2xvZ2ljYWxUaHJlc2hvbGQgaXMgYWx3YXlzIHRydWUuCiAKIGlubGluZSBib29sIGlzV2l0aGlu
VGhyZXNob2xkKENlbGxTdGF0ZSBjZWxsU3RhdGUsIHVuc2lnbmVkIHRocmVzaG9sZCkKIHsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9vdHMuaAko
cmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0
aXZlUm9vdHMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDksIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA5LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw4ICs0NSw4IEBAIHB1YmxpYzoKICAg
ICBIZWFwQ2VsbCoqIHJvb3RzKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0
IHNpemVfdCBpbmxpbmVDYXBhY2l0eSA9IDEyODsKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG5v
bklubGluZUNhcGFjaXR5ID0gODE5MiAvIHNpemVvZihIZWFwQ2VsbCopOworICAgIHN0YXRpYyBj
b25zdGV4cHIgc2l6ZV90IGlubGluZUNhcGFjaXR5ID0gMTI4OworICAgIHN0YXRpYyBjb25zdGV4
cHIgc2l6ZV90IG5vbklubGluZUNhcGFjaXR5ID0gODE5MiAvIHNpemVvZihIZWFwQ2VsbCopOwog
ICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1hcmtIb29rPgogICAgIHZvaWQgZ2VuZXJpY0Fk
ZFBvaW50ZXIodm9pZCosIEhlYXBWZXJzaW9uIG1hcmtpbmdWZXJzaW9uLCBIZWFwVmVyc2lvbiBu
ZXdseUFsbG9jYXRlZFZlcnNpb24sIFRpbnlCbG9vbUZpbHRlciwgTWFya0hvb2smKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDU2VnbWVudGVkQXJyYXkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1NlZ21lbnRlZEFycmF5LmgJKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDU2VnbWVudGVkQXJy
YXkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYml0d2lzZV9jYXN0PFQqPih0aGlzICsgMSk7CiAgICAgfQogCi0gICAgc3RhdGljIGNv
bnN0IHNpemVfdCBibG9ja1NpemUgPSA0ICogS0I7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXpl
X3QgYmxvY2tTaXplID0gNCAqIEtCOwogCiAgICAgR0NBcnJheVNlZ21lbnQqIG1fcHJldjsKICAg
ICBHQ0FycmF5U2VnbWVudCogbV9uZXh0OwpAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAKIHBy
b3RlY3RlZDoKICAgICB0ZW1wbGF0ZSA8c2l6ZV90IHNpemU+IHN0cnVjdCBDYXBhY2l0eUZyb21T
aXplIHsKLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCB2YWx1ZSA9IChzaXplIC0gc2l6ZW9m
KEdDQXJyYXlTZWdtZW50PFQ+KSkgLyBzaXplb2YoVCk7CisgICAgICAgIHN0YXRpYyBjb25zdGV4
cHIgc2l6ZV90IHZhbHVlID0gKHNpemUgLSBzaXplb2YoR0NBcnJheVNlZ21lbnQ8VD4pKSAvIHNp
emVvZihUKTsKICAgICB9OwogCiAgICAgdm9pZCBleHBhbmQoKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hhbmRsZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGFuZGxlQmxvY2suaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGFuZGxlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw3ICsz
OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEhhbmRsZUJsb2NrKik7CiAg
ICAgc3RhdGljIEhhbmRsZUJsb2NrKiBibG9ja0ZvcihIYW5kbGVOb2RlKik7CiAKLSAgICBzdGF0
aWMgY29uc3Qgc2l6ZV90IGJsb2NrU2l6ZSA9IDQgKiBLQjsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHNpemVfdCBibG9ja1NpemUgPSA0ICogS0I7CiAKICAgICBIYW5kbGVTZXQqIGhhbmRsZVNldCgp
OwogCkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgY2hhciogcGF5bG9hZCgpOwogICAg
IGNoYXIqIHBheWxvYWRFbmQoKTsKIAotICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc19ibG9ja01h
c2sgPSB+KGJsb2NrU2l6ZSAtIDEpOworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHNfYmxv
Y2tNYXNrID0gfihibG9ja1NpemUgLSAxKTsKIAogICAgIEhhbmRsZUJsb2NrKiBtX3ByZXY7CiAg
ICAgSGFuZGxlQmxvY2sqIG1fbmV4dDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
Y3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI1NCw3ICsyMjU0LDcgQEAgdm9pZCBIZWFwOjpub3Rp
ZnlJbmNyZW1lbnRhbFN3ZWVwZXIoKQogCiB2b2lkIEhlYXA6OnVwZGF0ZUFsbG9jYXRpb25MaW1p
dHMoKQogewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAogICAgIGlmICh2ZXJib3Nl
KSB7CiAgICAgICAgIGRhdGFMb2coIlxuIik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw3ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgLy8gZGVh
ZGxpbmUgd2hlbiBjYWxsaW5nIEhlYXA6OmlzUGFnZWRPdXQuIERlY3JlYXNpbmcgaXQgd2lsbCBj
YXVzZSB1cyB0byBkZXRlY3QgCiAgICAgLy8gb3ZlcnN0ZXBwaW5nIG91ciBkZWFkbGluZSBtb3Jl
IHF1aWNrbHksIHdoaWxlIGluY3JlYXNpbmcgaXQgd2lsbCBjYXVzZSAKICAgICAvLyBvdXIgc2Nh
biB0byBydW4gZmFzdGVyLiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc190aW1lQ2hlY2tS
ZXNvbHV0aW9uID0gMTY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzX3RpbWVDaGVj
a1Jlc29sdXRpb24gPSAxNjsKIAogICAgIGJvb2wgaXNNYXJrZWQoY29uc3Qgdm9pZCopOwogICAg
IHN0YXRpYyBib29sIHRlc3RBbmRTZXRNYXJrZWQoSGVhcFZlcnNpb24sIGNvbnN0IHZvaWQqKTsK
QEAgLTQyOCw3ICs0MjgsNyBAQCBwcml2YXRlOgogICAgIGNsYXNzIEhlYXBUaHJlYWQ7CiAgICAg
ZnJpZW5kIGNsYXNzIEhlYXBUaHJlYWQ7CiAKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pbkV4
dHJhTWVtb3J5ID0gMjU2OworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1pbkV4dHJhTWVt
b3J5ID0gMjU2OwogICAgIAogICAgIGNsYXNzIEZpbmFsaXplck93bmVyIDogcHVibGljIFdlYWtI
YW5kbGVPd25lciB7CiAgICAgICAgIHZvaWQgZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2b2lk
KiBjb250ZXh0KSBvdmVycmlkZTsKQEAgLTY3OCw3ICs2NzgsNyBAQCBwcml2YXRlOgogICAgIHVu
c2lnbmVkIG1fbnVtYmVyT2ZXYWl0aW5nUGFyYWxsZWxNYXJrZXJzIHsgMCB9OwogCiAgICAgQ29u
Y3VycmVudFB0ckhhc2hTZXQgbV9vcGFxdWVSb290czsKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90
IHNfYmxvY2tGcmFnbWVudExlbmd0aCA9IDMyOworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90
IHNfYmxvY2tGcmFnbWVudExlbmd0aCA9IDMyOwogCiAgICAgUGFyYWxsZWxIZWxwZXJDbGllbnQg
bV9oZWxwZXJDbGllbnQ7CiAgICAgUmVmUHRyPFNoYXJlZFRhc2s8dm9pZChTbG90VmlzaXRvciYp
Pj4gbV9ib251c1Zpc2l0b3JUYXNrOwpAQCAtNjkwLDEyICs2OTAsMTIgQEAgcHJpdmF0ZToKICAg
ICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TXV0YXRvclNjaGVkdWxlcj4gbV9zY2hlZHVsZXI7CiAg
ICAgCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG11dGF0b3JIYXNDb25uQml0ID0gMXUgPDwg
MHU7IC8vIE11c3QgYWxzbyBiZSBwcm90ZWN0ZWQgYnkgdGhyZWFkTG9jay4KLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgc3RvcHBlZEJpdCA9IDF1IDw8IDF1OyAvLyBPbmx5IHNldCB3aGVuICFo
YXNBY2Nlc3NCaXQKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaGFzQWNjZXNzQml0ID0gMXUg
PDwgMnU7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGdjRGlkSklUQml0ID0gMXUgPDwgM3U7
IC8vIFNldCB3aGVuIHRoZSBHQyBkaWQgc29tZSBKSVRpbmcsIHNvIG9uIHJlc3VtZSB3ZSBuZWVk
IHRvIGNwdWlkLgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBuZWVkRmluYWxpemVCaXQgPSAx
dSA8PCA0dTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbXV0YXRvcldhaXRpbmdCaXQgPSAx
dSA8PCA1dTsgLy8gQWxsb3dzIHRoZSBtdXRhdG9yIHRvIHVzZSB0aGlzIGFzIGEgY29uZGl0aW9u
IHZhcmlhYmxlLgorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbXV0YXRvckhhc0Nvbm5C
aXQgPSAxdSA8PCAwdTsgLy8gTXVzdCBhbHNvIGJlIHByb3RlY3RlZCBieSB0aHJlYWRMb2NrLgor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc3RvcHBlZEJpdCA9IDF1IDw8IDF1OyAvLyBP
bmx5IHNldCB3aGVuICFoYXNBY2Nlc3NCaXQKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IGhhc0FjY2Vzc0JpdCA9IDF1IDw8IDJ1OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
Z2NEaWRKSVRCaXQgPSAxdSA8PCAzdTsgLy8gU2V0IHdoZW4gdGhlIEdDIGRpZCBzb21lIEpJVGlu
Zywgc28gb24gcmVzdW1lIHdlIG5lZWQgdG8gY3B1aWQuCisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBuZWVkRmluYWxpemVCaXQgPSAxdSA8PCA0dTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIG11dGF0b3JXYWl0aW5nQml0ID0gMXUgPDwgNXU7IC8vIEFsbG93cyB0aGUgbXV0
YXRvciB0byB1c2UgdGhpcyBhcyBhIGNvbmRpdGlvbiB2YXJpYWJsZS4KICAgICBBdG9taWM8dW5z
aWduZWQ+IG1fd29ybGRTdGF0ZTsKICAgICBib29sIG1fd29ybGRJc1N0b3BwZWQgeyBmYWxzZSB9
OwogICAgIExvY2sgbV92aXNpdFJhY2VMb2NrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcFNuYXBzaG90LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcFNuYXBzaG90LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ5LDcgKzQ5LDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBIZWFwU25hcHNob3RCdWlsZGVy
OwotICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBDZWxsVG9Td2VlcFRhZyA9IDE7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBpbnRwdHJfdCBDZWxsVG9Td2VlcFRhZyA9IDE7CiAKICAgICBWZWN0b3I8
SGVhcFNuYXBzaG90Tm9kZT4gbV9ub2RlczsKICAgICBUaW55Qmxvb21GaWx0ZXIgbV9maWx0ZXI7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwVXRpbC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBVdGlsLmgJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBVdGlsLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgSGFzaFNldDxNYXJr
ZWRCbG9jayo+JiBzZXQgPSBoZWFwLm9iamVjdFNwYWNlKCkuYmxvY2tzKCkuc2V0KCk7CiAgICAg
ICAgIAogICAgICAgICBBU1NFUlQoaGVhcC5vYmplY3RTcGFjZSgpLmlzTWFya2luZygpKTsKLSAg
ICAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNNYXJraW5nID0gdHJ1ZTsKKyAgICAgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGlzTWFya2luZyA9IHRydWU7CiAgICAgICAgIAogICAgICAgICBjaGFy
KiBwb2ludGVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KHBhc3NlZFBvaW50ZXIpOwogICAgICAgICAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2Vl
cGVyLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SW5jcmVtZW50YWxTd2VlcGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDkgKzM0LDkgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBjb25zdCBTZWNvbmRzIHN3ZWVwVGltZVNsaWNl
ID0gMTBfbXM7Ci1zdGF0aWMgY29uc3QgZG91YmxlIHN3ZWVwVGltZVRvdGFsID0gLjEwOwotc3Rh
dGljIGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVNdWx0aXBsaWVyID0gMS4wIC8gc3dlZXBUaW1lVG90
YWw7CitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgc3dlZXBUaW1lU2xpY2UgPSAxMF9tczsKK3N0
YXRpYyBjb25zdGV4cHIgZG91YmxlIHN3ZWVwVGltZVRvdGFsID0gLjEwOworc3RhdGljIGNvbnN0
ZXhwciBkb3VibGUgc3dlZXBUaW1lTXVsdGlwbGllciA9IDEuMCAvIHN3ZWVwVGltZVRvdGFsOwog
CiB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6c2NoZWR1bGVUaW1lcigpCiB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9MYXJnZUFsbG9jYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9MYXJnZUFsbG9jYXRpb24uaAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTGFyZ2VBbGxvY2F0aW9uLmgJKHdv
cmtpbmcgY29weSkKQEAgLTE0NSw4ICsxNDUsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBk
dW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGFsaWdubWVudCA9IE1hcmtlZEJsb2NrOjphdG9tU2l6ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgaGFsZkFsaWdubWVudCA9IGFsaWdubWVudCAvIDI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBhbGlnbm1lbnQgPSBNYXJrZWRCbG9jazo6YXRvbVNpemU7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBoYWxmQWxpZ25tZW50ID0gYWxpZ25tZW50IC8gMjsKIAogcHJp
dmF0ZToKICAgICBMYXJnZUFsbG9jYXRpb24oSGVhcCYsIHNpemVfdCwgU3Vic3BhY2UqLCB1bnNp
Z25lZCBpbmRleEluU3BhY2UsIGJvb2wgYWRqdXN0ZWRBbGlnbm1lbnQpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAkocmV2aXNpb24gMjQ5OTc2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CiAKIGNvbnN0IHNpemVfdCBNYXJrZWRCbG9jazo6YmxvY2tTaXplOwogCi1zdGF0aWMgY29u
c3QgYm9vbCBjb21wdXRlQmFsYW5jZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIGNv
bXB1dGVCYWxhbmNlID0gZmFsc2U7CiBzdGF0aWMgc2l6ZV90IGJhbGFuY2U7CiAKIE1hcmtlZEJs
b2NrOjpIYW5kbGUqIE1hcmtlZEJsb2NrOjp0cnlDcmVhdGUoSGVhcCYgaGVhcCwgQWxpZ25lZE1l
bW9yeUFsbG9jYXRvciogYWxpZ25lZE1lbW9yeUFsbG9jYXRvcikKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1N0cm9uZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1N0cm9uZy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TdHJvbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDcgKzE0Niw3IEBAIHRl
bXBsYXRlPGNsYXNzIFQ+IGlubGluZSB2b2lkIHN3YXAoU3Ryb24KIG5hbWVzcGFjZSBXVEYgewog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgVmVjdG9yVHJhaXRzPEpTQzo6U3Ryb25nPFQ+
PiA6IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBjYW5D
b21wYXJlV2l0aE1lbWNtcCA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5D
b21wYXJlV2l0aE1lbWNtcCA9IGZhbHNlOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3Ry
dWN0IEhhc2hUcmFpdHM8SlNDOjpTdHJvbmc8UD4+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpT
Qzo6U3Ryb25nPFA+PiB7IH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9WaXNp
dFJhY2VLZXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9WaXNp
dFJhY2VLZXkuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvVmlzaXRSYWNlS2V5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgog
c3RydWN0IFZpc2l0UmFjZUtleUhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0
IFZpc2l0UmFjZUtleSYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJv
b2wgZXF1YWwoY29uc3QgVmlzaXRSYWNlS2V5JiBhLCBjb25zdCBWaXNpdFJhY2VLZXkmIGIpIHsg
cmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0Vt
cHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29t
cGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEyLCAyMDEzLCAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtOTcsNyArOTcsNyBAQCBwcml2YXRlOgogbmFtZXNwYWNlIFdURiB7CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0cnVjdCBWZWN0b3JUcmFpdHM8SlNDOjpXZWFrPFQ+PiA6IFNpbXBsZUNs
YXNzVmVjdG9yVHJhaXRzIHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBjYW5Db21wYXJlV2l0aE1l
bWNtcCA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Db21wYXJlV2l0aE1l
bWNtcCA9IGZhbHNlOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEhhc2hUcmFp
dHM8SlNDOjpXZWFrPFQ+PiA6IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxKU0M6OldlYWs8VD4+IHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5oCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgU2xvdFZpc2l0b3I7CiBjbGFzcyBXZWFrQmxv
Y2sgOiBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8V2Vha0Jsb2NrPiB7CiBwdWJsaWM6CiAg
ICAgZnJpZW5kIGNsYXNzIFdURjo6RG91Ymx5TGlua2VkTGlzdE5vZGU8V2Vha0Jsb2NrPjsKLSAg
ICBzdGF0aWMgY29uc3Qgc2l6ZV90IGJsb2NrU2l6ZSA9IDI1NjsgLy8gMS8xNiBvZiBNYXJrZWRC
bG9jayBzaXplCisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgYmxvY2tTaXplID0gMjU2OyAv
LyAxLzE2IG9mIE1hcmtlZEJsb2NrIHNpemUKIAogICAgIHN0cnVjdCBGcmVlQ2VsbCB7CiAgICAg
ICAgIEZyZWVDZWxsKiBuZXh0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9KU0luamVjdGVkU2NyaXB0SG9zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuaAkocmV2aXNpb24gMjQ5OTc2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgSW5qZWN0ZWRTY3JpcHRIb3N0Owog
Y2xhc3MgSlNJbmplY3RlZFNjcmlwdEhvc3QgZmluYWwgOiBwdWJsaWMgSlNDOjpKU0Rlc3RydWN0
aWJsZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0M6OkpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgREVDTEFSRV9JTkZPOwogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0
UHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9KU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsK
IGNsYXNzIEpTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6
SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0M6OkpTTm9uRmluYWxP
YmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90Owor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OwogCiAgICAgREVD
TEFSRV9JTkZPOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2
YVNjcmlwdENhbGxGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIGNsYXNzIEpT
SmF2YVNjcmlwdENhbGxGcmFtZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QgQmFz
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBERUNMQVJFX0lORk87CiAKQEAgLTcxLDEz
ICs3MSwxMyBAQCBwdWJsaWM6CiAgICAgSlNDOjpKU1ZhbHVlIGlzVGFpbERlbGV0ZWQoSlNDOjpF
eGVjU3RhdGUqKSBjb25zdDsKIAogICAgIC8vIENvbnN0YW50cy4KLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgc2hvcnQgR0xPQkFMX1NDT1BFID0gMDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgV0lUSF9TQ09QRSA9IDE7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENMT1NVUkVfU0NPUEUgPSAyOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBDQVRD
SF9TQ09QRSA9IDM7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZVTkNUSU9OX05B
TUVfU0NPUEUgPSA0OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBHTE9CQUxfTEVY
SUNBTF9FTlZJUk9OTUVOVF9TQ09QRSA9IDU7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IE5FU1RFRF9MRVhJQ0FMX1NDT1BFID0gNjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIHNob3J0IEdMT0JBTF9TQ09QRSA9IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBzaG9ydCBXSVRIX1NDT1BFID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHNo
b3J0IENMT1NVUkVfU0NPUEUgPSAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc2hv
cnQgQ0FUQ0hfU0NPUEUgPSAzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc2hvcnQg
RlVOQ1RJT05fTkFNRV9TQ09QRSA9IDQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBz
aG9ydCBHTE9CQUxfTEVYSUNBTF9FTlZJUk9OTUVOVF9TQ09QRSA9IDU7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBzaG9ydCBORVNURURfTEVYSUNBTF9TQ09QRSA9IDY7CiAKIHByb3Rl
Y3RlZDoKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3Jp
cHRDYWxsRnJhbWVQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogY2xhc3MgSlNK
YXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0M6OkpTTm9uRmluYWxPYmplY3QgQmFz
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OwogCiAgICAgREVDTEFSRV9JTkZP
OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNv
bnNvbGVBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dApAQCAtMzksOCArMzksOCBAQAogCiBuYW1lc3BhY2UgSW5zcGVjdG9y
IHsKIAotc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heGltdW1Db25zb2xlTWVzc2FnZXMgPSAxMDA7
Ci1zdGF0aWMgY29uc3QgaW50IGV4cGlyZUNvbnNvbGVNZXNzYWdlc1N0ZXAgPSAxMDsKK3N0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgbWF4aW11bUNvbnNvbGVNZXNzYWdlcyA9IDEwMDsKK3N0YXRp
YyBjb25zdGV4cHIgaW50IGV4cGlyZUNvbnNvbGVNZXNzYWdlc1N0ZXAgPSAxMDsKIAogSW5zcGVj
dG9yQ29uc29sZUFnZW50OjpJbnNwZWN0b3JDb25zb2xlQWdlbnQoQWdlbnRDb250ZXh0JiBjb250
ZXh0KQogICAgIDogSW5zcGVjdG9yQWdlbnRCYXNlKCJDb25zb2xlIl9zKQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApA
QCAtMjgzLDcgKzI4Myw3IEBAIHZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpyZWxlYXNlT2Jq
ZWMKIAogdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmdldFJ1bnRpbWVUeXBlc0ZvclZhcmlh
Ymxlc0F0T2Zmc2V0cyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IEpTT046OkFycmF5
JiBsb2NhdGlvbnMsIFJlZlB0cjxKU09OOjpBcnJheU9mPFByb3RvY29sOjpSdW50aW1lOjpUeXBl
RGVzY3JpcHRpb24+PiYgdHlwZURlc2NyaXB0aW9ucykKIHsKLSAgICBzdGF0aWMgY29uc3QgYm9v
bCB2ZXJib3NlID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBm
YWxzZTsKIAogICAgIHR5cGVEZXNjcmlwdGlvbnMgPSBKU09OOjpBcnJheU9mPFByb3RvY29sOjpS
dW50aW1lOjpUeXBlRGVzY3JpcHRpb24+OjpjcmVhdGUoKTsKICAgICBpZiAoIW1fdm0udHlwZVBy
b2ZpbGVyKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9wcm90b2NvbF90eXBlc19oZWFkZXIucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2Vu
ZXJhdGVfY3BwX3Byb3RvY29sX3R5cGVzX2hlYWRlci5weQkocmV2aXNpb24gMjQ5OTc2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVf
Y3BwX3Byb3RvY29sX3R5cGVzX2hlYWRlci5weQkod29ya2luZyBjb3B5KQpAQCAtMTAyLDcgKzEw
Miw3IEBAIGNsYXNzIENwcFByb3RvY29sVHlwZXNIZWFkZXJHZW5lcmF0b3IoQ3AKICAgICAgICAg
ICAgIGRvbWFpbl9saW5lcy5hcHBlbmQoJ25hbWVzcGFjZSAlcyB7JyAlIGRvbWFpbi5kb21haW5f
bmFtZSkKIAogICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2ZXJzaW9uLCBpbnQpOgotICAgICAg
ICAgICAgICAgIGRvbWFpbl9saW5lcy5hcHBlbmQoJ3N0YXRpYyBjb25zdCB1bnNpZ25lZCBWRVJT
SU9OID0gJXM7JyAlIHZlcnNpb24pCisgICAgICAgICAgICAgICAgZG9tYWluX2xpbmVzLmFwcGVu
ZCgnc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBWRVJTSU9OID0gJXM7JyAlIHZlcnNpb24pCiAK
ICAgICAgICAgICAgIGRvbWFpbl9saW5lcy5hcHBlbmQoJ30gLy8gJXMnICUgZG9tYWluLmRvbWFp
bl9uYW1lKQogICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYud3JhcF93aXRoX2d1YXJk
X2Zvcl9kb21haW4oZG9tYWluLCAnXG4nLmpvaW4oZG9tYWluX2xpbmVzKSkpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3Rl
ZC92ZXJzaW9uLmpzb24tcmVzdWx0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3ZlcnNpb24uanNvbi1y
ZXN1bHQJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3ZlcnNpb24uanNvbi1yZXN1bHQJKHdv
cmtpbmcgY29weSkKQEAgLTMxOSw3ICszMTksNyBAQCBuYW1lc3BhY2UgUHJvdG9jb2wgewogCiAv
LyBWZXJzaW9ucy4KIG5hbWVzcGFjZSBWZXJzaW9uRG9tYWluIHsKLXN0YXRpYyBjb25zdCB1bnNp
Z25lZCBWRVJTSU9OID0gNDI7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFZFUlNJT04gPSA0
MjsKIH0gLy8gVmVyc2lvbkRvbWFpbgogLy8gRW5kIG9mIHZlcnNpb25zLgogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2OCw3ICsxNjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICB9CiAKICAgICB1bnNpZ25lZCBzaXplT2ZWYXJhcmdzKENhbGxGcmFtZSogZXhlYywgSlNW
YWx1ZSBhcmd1bWVudHMsIHVpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KTsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgbWF4QXJndW1lbnRzID0gMHgxMDAwMDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIG1heEFyZ3VtZW50cyA9IDB4MTAwMDA7CiAgICAgdW5zaWduZWQgc2l6ZUZy
YW1lRm9yVmFyYXJncyhDYWxsRnJhbWUqIGV4ZWMsIFZNJiwgSlNWYWx1ZSBhcmd1bWVudHMsIHVu
c2lnbmVkIG51bVVzZWRTdGFja1Nsb3RzLCB1aW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCk7CiAg
ICAgdW5zaWduZWQgc2l6ZUZyYW1lRm9yRm9yd2FyZEFyZ3VtZW50cyhDYWxsRnJhbWUqIGV4ZWMs
IFZNJiwgdW5zaWduZWQgbnVtVXNlZFN0YWNrU2xvdHMpOwogICAgIHZvaWQgbG9hZFZhcmFyZ3Mo
Q2FsbEZyYW1lKiBleGVjQ2FsbGVyLCBWaXJ0dWFsUmVnaXN0ZXIgZmlyc3RFbGVtZW50RGVzdCwg
SlNWYWx1ZSBzb3VyY2UsIHVpbnQzMl90IG9mZnNldCwgdWludDMyX3QgbGVuZ3RoKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TaGFkb3dDaGlja2VuLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tl
bi5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9TaGFkb3dDaGlja2VuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCw3IEBACiBuYW1l
c3BhY2UgSlNDIHsKIAogbmFtZXNwYWNlIFNoYWRvd0NoaWNrZW5JbnRlcm5hbCB7Ci1zdGF0aWMg
Y29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogfQogCiB2b2lkIFNoYWRvd0NoaWNrZW46OlBhY2tldDo6ZHVtcChQcmludFN0
cmVhbSYgb3V0KSBjb25zdApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9CaW5hcnlT
d2l0Y2guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQmluYXJ5
U3dpdGNoLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9CaW5hcnlTd2l0Y2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiBuYW1l
c3BhY2UgSlNDIHsKIAogbmFtZXNwYWNlIEJpbmFyeVN3aXRjaEludGVybmFsIHsKLXN0YXRpYyBj
b25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBnbG9iYWxDb3VudGVyOyAvLyBXZSB1c2Ug
YSBkaWZmZXJlbnQgc2VlZCBldmVyeSB0aW1lIHdlIGFyZSBpbnZva2VkLgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIuaAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTE4NSw3ICsxODUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmVwYXJlRm9y
U2xvd1BhdGgoKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0g
ZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIAogICAg
IENDYWxsSGVscGVycyYgbV9qaXQ7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpA
QCAtNTgsNyArNTgsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGppdEFsbG9jYXRpb25HcmFudWxlID0gMzI7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IGppdEFsbG9jYXRpb25HcmFudWxlID0gMzI7CiAKIHR5cGVkZWYgV1RGOjpNZXRhQWxsb2NhdG9y
SGFuZGxlIEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvRlBSSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvRlBSSW5mby5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0ZQUkluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDMwICs0MCwzMCBAQCBzdGF0aWMg
Y29uc3RleHByIEZQUlJlZyBJbnZhbGlkRlBSUmVnIHsgCiBjbGFzcyBGUFJJbmZvIHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEZQUlJlZyBSZWdpc3RlclR5cGU7Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gNjsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IGlzNjRCaXQoKSA/IDggOiAwOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSA2OworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IGlzNjRCaXQoKSA/
IDggOiAwOwogCiAgICAgLy8gVGVtcG9yYXJ5IHJlZ2lzdGVycy4KLSAgICBzdGF0aWMgY29uc3Qg
RlBSUmVnIGZwUmVnVDAgPSBYODZSZWdpc3RlcnM6OnhtbTA7Ci0gICAgc3RhdGljIGNvbnN0IEZQ
UlJlZyBmcFJlZ1QxID0gWDg2UmVnaXN0ZXJzOjp4bW0xOwotICAgIHN0YXRpYyBjb25zdCBGUFJS
ZWcgZnBSZWdUMiA9IFg4NlJlZ2lzdGVyczo6eG1tMjsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVn
IGZwUmVnVDMgPSBYODZSZWdpc3RlcnM6OnhtbTM7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBm
cFJlZ1Q0ID0gWDg2UmVnaXN0ZXJzOjp4bW00OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBS
ZWdUNSA9IFg4NlJlZ2lzdGVyczo6eG1tNTsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBm
cFJlZ1QwID0gWDg2UmVnaXN0ZXJzOjp4bW0wOworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVn
IGZwUmVnVDEgPSBYODZSZWdpc3RlcnM6OnhtbTE7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJS
ZWcgZnBSZWdUMiA9IFg4NlJlZ2lzdGVyczo6eG1tMjsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQ
UlJlZyBmcFJlZ1QzID0gWDg2UmVnaXN0ZXJzOjp4bW0zOworICAgIHN0YXRpYyBjb25zdGV4cHIg
RlBSUmVnIGZwUmVnVDQgPSBYODZSZWdpc3RlcnM6OnhtbTQ7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBGUFJSZWcgZnBSZWdUNSA9IFg4NlJlZ2lzdGVyczo6eG1tNTsKICNpZiBDUFUoWDg2XzY0KQog
ICAgIC8vIE9ubHkgWDg2XzY0IHBhc3NlcyBhZ3VtZW50cyBpbiB4bW0gcmVnaXN0ZXJzCi0gICAg
c3RhdGljIGNvbnN0IEZQUlJlZyBhcmd1bWVudEZQUjAgPSBYODZSZWdpc3RlcnM6OnhtbTA7IC8v
IGZwUmVnVDAKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGFyZ3VtZW50RlBSMSA9IFg4NlJlZ2lz
dGVyczo6eG1tMTsgLy8gZnBSZWdUMQotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRG
UFIyID0gWDg2UmVnaXN0ZXJzOjp4bW0yOyAvLyBmcFJlZ1QyCi0gICAgc3RhdGljIGNvbnN0IEZQ
UlJlZyBhcmd1bWVudEZQUjMgPSBYODZSZWdpc3RlcnM6OnhtbTM7IC8vIGZwUmVnVDMKLSAgICBz
dGF0aWMgY29uc3QgRlBSUmVnIGFyZ3VtZW50RlBSNCA9IFg4NlJlZ2lzdGVyczo6eG1tNDsgLy8g
ZnBSZWdUNAotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRGUFI1ID0gWDg2UmVnaXN0
ZXJzOjp4bW01OyAvLyBmcFJlZ1Q1Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBhcmd1bWVudEZQ
UjYgPSBYODZSZWdpc3RlcnM6OnhtbTY7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBhcmd1bWVu
dEZQUjcgPSBYODZSZWdpc3RlcnM6OnhtbTc7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcg
YXJndW1lbnRGUFIwID0gWDg2UmVnaXN0ZXJzOjp4bW0wOyAvLyBmcFJlZ1QwCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBGUFJSZWcgYXJndW1lbnRGUFIxID0gWDg2UmVnaXN0ZXJzOjp4bW0xOyAvLyBm
cFJlZ1QxCisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgYXJndW1lbnRGUFIyID0gWDg2UmVn
aXN0ZXJzOjp4bW0yOyAvLyBmcFJlZ1QyCisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgYXJn
dW1lbnRGUFIzID0gWDg2UmVnaXN0ZXJzOjp4bW0zOyAvLyBmcFJlZ1QzCisgICAgc3RhdGljIGNv
bnN0ZXhwciBGUFJSZWcgYXJndW1lbnRGUFI0ID0gWDg2UmVnaXN0ZXJzOjp4bW00OyAvLyBmcFJl
Z1Q0CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgYXJndW1lbnRGUFI1ID0gWDg2UmVnaXN0
ZXJzOjp4bW01OyAvLyBmcFJlZ1Q1CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgYXJndW1l
bnRGUFI2ID0gWDg2UmVnaXN0ZXJzOjp4bW02OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVn
IGFyZ3VtZW50RlBSNyA9IFg4NlJlZ2lzdGVyczo6eG1tNzsKICNlbmRpZgogICAgIC8vIE9uIFg4
NiB0aGUgcmV0dXJuIHdpbGwgYWN0dWFsbHkgYmUgb24gdGhlIHg4NyBzdGFjaywKICAgICAvLyBz
byB3ZSdsbCBjb3B5IHRvIHhtbTAgZm9yIHNhbml0eSEKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVn
IHJldHVyblZhbHVlRlBSID0gWDg2UmVnaXN0ZXJzOjp4bW0wOyAvLyBmcFJlZ1QwCisgICAgc3Rh
dGljIGNvbnN0ZXhwciBGUFJSZWcgcmV0dXJuVmFsdWVGUFIgPSBYODZSZWdpc3RlcnM6OnhtbTA7
IC8vIGZwUmVnVDAKIAogICAgIC8vIEZQUlJlZyBtYXBwaW5nIGlzIGRpcmVjdCwgdGhlIG1hY2hp
bmUgcmVnc2l0ZXIgbnVtYmVycyBjYW4KICAgICAvLyBiZSB1c2VkIGRpcmVjdGx5IGFzIGluZGlj
ZXMgaW50byB0aGUgRlBSIFJlZ2lzdGVyQmFuay4KQEAgLTk2LDcgKzk2LDcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OmZwck5hbWUocmVnKTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW52YWxpZEluZGV4ID0gMHhmZmZmZmZmZjsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEludmFsaWRJbmRleCA9IDB4ZmZmZmZmZmY7CiB9Owog
CiAjZW5kaWYgLy8gQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKQEAgLTEwNiwzMCArMTA2LDMwIEBA
IHB1YmxpYzoKIGNsYXNzIEZQUkluZm8gewogcHVibGljOgogICAgIHR5cGVkZWYgRlBSUmVnIFJl
Z2lzdGVyVHlwZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMg
PSA2OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSA2
OwogCiAjaWYgQ1BVKEFSTV9IQVJERlApCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJl
ck9mQXJndW1lbnRSZWdpc3RlcnMgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDg7CiAjZWxzZQotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gMDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSAwOwogI2VuZGlmCiAKICAg
ICAvLyBUZW1wb3JhcnkgcmVnaXN0ZXJzLgogICAgIC8vIGQ3IGlzIHVzZSBieSB0aGUgTWFjcm9B
c3NlbWJsZXIgYXMgZnBUZW1wUmVnaXN0ZXIuCi0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJl
Z1QwID0gQVJNUmVnaXN0ZXJzOjpkMDsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDEg
PSBBUk1SZWdpc3RlcnM6OmQxOwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUMiA9IEFS
TVJlZ2lzdGVyczo6ZDI7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1QzID0gQVJNUmVn
aXN0ZXJzOjpkMzsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDQgPSBBUk1SZWdpc3Rl
cnM6OmQ0OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdUNSA9IEFSTVJlZ2lzdGVyczo6
ZDU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMCA9IEFSTVJlZ2lzdGVyczo6
ZDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMSA9IEFSTVJlZ2lzdGVyczo6
ZDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMiA9IEFSTVJlZ2lzdGVyczo6
ZDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMyA9IEFSTVJlZ2lzdGVyczo6
ZDM7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUNCA9IEFSTVJlZ2lzdGVyczo6
ZDQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUNSA9IEFSTVJlZ2lzdGVyczo6
ZDU7CiAgICAgLy8gQVJNdjcgZG9lc24ndCBwYXNzIGFyZ3VtZW50cyBpbiBmcCByZWdpc3RlcnMu
IFRoZSByZXR1cm4KICAgICAvLyB2YWx1ZSBpcyBhbHNvIGFjdHVhbGx5IGluIGludGVnZXIgcmVn
aXN0ZXJzLCBmb3Igbm93CiAgICAgLy8gd2UnbGwgcmV0dXJuIGluIGQwIGZvciBzaW1wbGljaXR5
LgotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgcmV0dXJuVmFsdWVGUFIgPSBBUk1SZWdpc3RlcnM6
OmQwOyAvLyBmcFJlZ1QwCisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgcmV0dXJuVmFsdWVG
UFIgPSBBUk1SZWdpc3RlcnM6OmQwOyAvLyBmcFJlZ1QwCiAKICNpZiBDUFUoQVJNX0hBUkRGUCkK
LSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGFyZ3VtZW50RlBSMCA9IEFSTVJlZ2lzdGVyczo6ZDA7
IC8vIGZwUmVnVDAKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGFyZ3VtZW50RlBSMSA9IEFSTVJl
Z2lzdGVyczo6ZDE7IC8vIGZwUmVnVDEKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBhcmd1
bWVudEZQUjAgPSBBUk1SZWdpc3RlcnM6OmQwOyAvLyBmcFJlZ1QwCisgICAgc3RhdGljIGNvbnN0
ZXhwciBGUFJSZWcgYXJndW1lbnRGUFIxID0gQVJNUmVnaXN0ZXJzOjpkMTsgLy8gZnBSZWdUMQog
I2VuZGlmCiAKICAgICAvLyBGUFJSZWcgbWFwcGluZyBpcyBkaXJlY3QsIHRoZSBtYWNoaW5lIHJl
Z3NpdGVyIG51bWJlcnMgY2FuCkBAIC0xNjMsNyArMTYzLDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OmZwck5hbWUocmVnKTsKICAgICB9CiAKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgSW52YWxpZEluZGV4ID0gMHhmZmZmZmZmZjsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIEludmFsaWRJbmRleCA9IDB4ZmZmZmZmZmY7CiB9OwogCiAjZW5kaWYg
Ly8gQ1BVKEFSTSkKQEAgLTE3Myw1MyArMTczLDUzIEBAIHB1YmxpYzoKIGNsYXNzIEZQUkluZm8g
ewogcHVibGljOgogICAgIHR5cGVkZWYgRlBSUmVnIFJlZ2lzdGVyVHlwZTsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSAyMzsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDg7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDIzOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDg7CiAKICAgICAvLyBUZW1w
b3JhcnkgcmVnaXN0ZXJzLgogICAgIC8vIHE4LXExNSBhcmUgY2FsbGVlIHNhdmVkLCBxMzEgaXMg
dXNlIGJ5IHRoZSBNYWNyb0Fzc2VtYmxlciBhcyBmcFRlbXBSZWdpc3Rlci4KLSAgICBzdGF0aWMg
Y29uc3QgRlBSUmVnIGZwUmVnVDAgPSBBUk02NFJlZ2lzdGVyczo6cTA7Ci0gICAgc3RhdGljIGNv
bnN0IEZQUlJlZyBmcFJlZ1QxID0gQVJNNjRSZWdpc3RlcnM6OnExOwotICAgIHN0YXRpYyBjb25z
dCBGUFJSZWcgZnBSZWdUMiA9IEFSTTY0UmVnaXN0ZXJzOjpxMjsKLSAgICBzdGF0aWMgY29uc3Qg
RlBSUmVnIGZwUmVnVDMgPSBBUk02NFJlZ2lzdGVyczo6cTM7Ci0gICAgc3RhdGljIGNvbnN0IEZQ
UlJlZyBmcFJlZ1Q0ID0gQVJNNjRSZWdpc3RlcnM6OnE0OwotICAgIHN0YXRpYyBjb25zdCBGUFJS
ZWcgZnBSZWdUNSA9IEFSTTY0UmVnaXN0ZXJzOjpxNTsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVn
IGZwUmVnVDYgPSBBUk02NFJlZ2lzdGVyczo6cTY7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBm
cFJlZ1Q3ID0gQVJNNjRSZWdpc3RlcnM6OnE3OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBS
ZWdUOCA9IEFSTTY0UmVnaXN0ZXJzOjpxMTY7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJl
Z1Q5ID0gQVJNNjRSZWdpc3RlcnM6OnExNzsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDEwID0gQVJNNjRSZWdpc3RlcnM6OnExODsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDExID0gQVJNNjRSZWdpc3RlcnM6OnExOTsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDEyID0gQVJNNjRSZWdpc3RlcnM6OnEyMDsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDEzID0gQVJNNjRSZWdpc3RlcnM6OnEyMTsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDE0ID0gQVJNNjRSZWdpc3RlcnM6OnEyMjsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDE1ID0gQVJNNjRSZWdpc3RlcnM6OnEyMzsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDE2ID0gQVJNNjRSZWdpc3RlcnM6OnEyNDsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDE3ID0gQVJNNjRSZWdpc3RlcnM6OnEyNTsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDE4ID0gQVJNNjRSZWdpc3RlcnM6OnEyNjsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDE5ID0gQVJNNjRSZWdpc3RlcnM6OnEyNzsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDIwID0gQVJNNjRSZWdpc3RlcnM6OnEyODsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDIxID0gQVJNNjRSZWdpc3RlcnM6OnEyOTsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
VDIyID0gQVJNNjRSZWdpc3RlcnM6OnEzMDsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVn
Q1MwID0gQVJNNjRSZWdpc3RlcnM6OnE4OwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgZnBSZWdD
UzEgPSBBUk02NFJlZ2lzdGVyczo6cTk7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ0NT
MiA9IEFSTTY0UmVnaXN0ZXJzOjpxMTA7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ0NT
MyA9IEFSTTY0UmVnaXN0ZXJzOjpxMTE7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ0NT
NCA9IEFSTTY0UmVnaXN0ZXJzOjpxMTI7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ0NT
NSA9IEFSTTY0UmVnaXN0ZXJzOjpxMTM7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ0NT
NiA9IEFSTTY0UmVnaXN0ZXJzOjpxMTQ7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ0NT
NyA9IEFSTTY0UmVnaXN0ZXJzOjpxMTU7Ci0KLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGFyZ3Vt
ZW50RlBSMCA9IEFSTTY0UmVnaXN0ZXJzOjpxMDsgLy8gZnBSZWdUMAotICAgIHN0YXRpYyBjb25z
dCBGUFJSZWcgYXJndW1lbnRGUFIxID0gQVJNNjRSZWdpc3RlcnM6OnExOyAvLyBmcFJlZ1QxCi0g
ICAgc3RhdGljIGNvbnN0IEZQUlJlZyBhcmd1bWVudEZQUjIgPSBBUk02NFJlZ2lzdGVyczo6cTI7
IC8vIGZwUmVnVDIKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGFyZ3VtZW50RlBSMyA9IEFSTTY0
UmVnaXN0ZXJzOjpxMzsgLy8gZnBSZWdUMwotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1l
bnRGUFI0ID0gQVJNNjRSZWdpc3RlcnM6OnE0OyAvLyBmcFJlZ1Q0Ci0gICAgc3RhdGljIGNvbnN0
IEZQUlJlZyBhcmd1bWVudEZQUjUgPSBBUk02NFJlZ2lzdGVyczo6cTU7IC8vIGZwUmVnVDUKLSAg
ICBzdGF0aWMgY29uc3QgRlBSUmVnIGFyZ3VtZW50RlBSNiA9IEFSTTY0UmVnaXN0ZXJzOjpxNjsg
Ly8gZnBSZWdUNgotICAgIHN0YXRpYyBjb25zdCBGUFJSZWcgYXJndW1lbnRGUFI3ID0gQVJNNjRS
ZWdpc3RlcnM6OnE3OyAvLyBmcFJlZ1Q3CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBS
ZWdUMCA9IEFSTTY0UmVnaXN0ZXJzOjpxMDsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBm
cFJlZ1QxID0gQVJNNjRSZWdpc3RlcnM6OnExOworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVn
IGZwUmVnVDIgPSBBUk02NFJlZ2lzdGVyczo6cTI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJS
ZWcgZnBSZWdUMyA9IEFSTTY0UmVnaXN0ZXJzOjpxMzsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQ
UlJlZyBmcFJlZ1Q0ID0gQVJNNjRSZWdpc3RlcnM6OnE0OworICAgIHN0YXRpYyBjb25zdGV4cHIg
RlBSUmVnIGZwUmVnVDUgPSBBUk02NFJlZ2lzdGVyczo6cTU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBGUFJSZWcgZnBSZWdUNiA9IEFSTTY0UmVnaXN0ZXJzOjpxNjsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEZQUlJlZyBmcFJlZ1Q3ID0gQVJNNjRSZWdpc3RlcnM6OnE3OworICAgIHN0YXRpYyBjb25z
dGV4cHIgRlBSUmVnIGZwUmVnVDggPSBBUk02NFJlZ2lzdGVyczo6cTE2OworICAgIHN0YXRpYyBj
b25zdGV4cHIgRlBSUmVnIGZwUmVnVDkgPSBBUk02NFJlZ2lzdGVyczo6cTE3OworICAgIHN0YXRp
YyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDEwID0gQVJNNjRSZWdpc3RlcnM6OnExODsKKyAgICBz
dGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QxMSA9IEFSTTY0UmVnaXN0ZXJzOjpxMTk7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMTIgPSBBUk02NFJlZ2lzdGVyczo6cTIw
OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDEzID0gQVJNNjRSZWdpc3RlcnM6
OnEyMTsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QxNCA9IEFSTTY0UmVnaXN0
ZXJzOjpxMjI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMTUgPSBBUk02NFJl
Z2lzdGVyczo6cTIzOworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDE2ID0gQVJN
NjRSZWdpc3RlcnM6OnEyNDsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QxNyA9
IEFSTTY0UmVnaXN0ZXJzOjpxMjU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdU
MTggPSBBUk02NFJlZ2lzdGVyczo6cTI2OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZw
UmVnVDE5ID0gQVJNNjRSZWdpc3RlcnM6OnEyNzsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJl
ZyBmcFJlZ1QyMCA9IEFSTTY0UmVnaXN0ZXJzOjpxMjg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBG
UFJSZWcgZnBSZWdUMjEgPSBBUk02NFJlZ2lzdGVyczo6cTI5OworICAgIHN0YXRpYyBjb25zdGV4
cHIgRlBSUmVnIGZwUmVnVDIyID0gQVJNNjRSZWdpc3RlcnM6OnEzMDsKKyAgICBzdGF0aWMgY29u
c3RleHByIEZQUlJlZyBmcFJlZ0NTMCA9IEFSTTY0UmVnaXN0ZXJzOjpxODsKKyAgICBzdGF0aWMg
Y29uc3RleHByIEZQUlJlZyBmcFJlZ0NTMSA9IEFSTTY0UmVnaXN0ZXJzOjpxOTsKKyAgICBzdGF0
aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ0NTMiA9IEFSTTY0UmVnaXN0ZXJzOjpxMTA7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdDUzMgPSBBUk02NFJlZ2lzdGVyczo6cTExOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnQ1M0ID0gQVJNNjRSZWdpc3RlcnM6OnEx
MjsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ0NTNSA9IEFSTTY0UmVnaXN0ZXJz
OjpxMTM7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdDUzYgPSBBUk02NFJlZ2lz
dGVyczo6cTE0OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnQ1M3ID0gQVJNNjRS
ZWdpc3RlcnM6OnExNTsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGFyZ3VtZW50RlBS
MCA9IEFSTTY0UmVnaXN0ZXJzOjpxMDsgLy8gZnBSZWdUMAorICAgIHN0YXRpYyBjb25zdGV4cHIg
RlBSUmVnIGFyZ3VtZW50RlBSMSA9IEFSTTY0UmVnaXN0ZXJzOjpxMTsgLy8gZnBSZWdUMQorICAg
IHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGFyZ3VtZW50RlBSMiA9IEFSTTY0UmVnaXN0ZXJzOjpx
MjsgLy8gZnBSZWdUMgorICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGFyZ3VtZW50RlBSMyA9
IEFSTTY0UmVnaXN0ZXJzOjpxMzsgLy8gZnBSZWdUMworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBS
UmVnIGFyZ3VtZW50RlBSNCA9IEFSTTY0UmVnaXN0ZXJzOjpxNDsgLy8gZnBSZWdUNAorICAgIHN0
YXRpYyBjb25zdGV4cHIgRlBSUmVnIGFyZ3VtZW50RlBSNSA9IEFSTTY0UmVnaXN0ZXJzOjpxNTsg
Ly8gZnBSZWdUNQorICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGFyZ3VtZW50RlBSNiA9IEFS
TTY0UmVnaXN0ZXJzOjpxNjsgLy8gZnBSZWdUNgorICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVn
IGFyZ3VtZW50RlBSNyA9IEFSTTY0UmVnaXN0ZXJzOjpxNzsgLy8gZnBSZWdUNwogCi0gICAgc3Rh
dGljIGNvbnN0IEZQUlJlZyByZXR1cm5WYWx1ZUZQUiA9IEFSTTY0UmVnaXN0ZXJzOjpxMDsgLy8g
ZnBSZWdUMAorICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIHJldHVyblZhbHVlRlBSID0gQVJN
NjRSZWdpc3RlcnM6OnEwOyAvLyBmcFJlZ1QwCiAKICAgICBzdGF0aWMgRlBSUmVnIHRvUmVnaXN0
ZXIodW5zaWduZWQgaW5kZXgpCiAgICAgewpAQCAtMjU4LDcgKzI1OCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpmcHJOYW1lKHJlZyk7CiAgICAgfQogCi0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIEludmFsaWRJbmRleCA9IDB4ZmZmZmZmZmY7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBJbnZhbGlkSW5kZXggPSAweGZmZmZmZmZmOwogfTsKIAog
I2VuZGlmIC8vIENQVShBUk02NCkKQEAgLTI2OCwyMiArMjY4LDIyIEBAIHB1YmxpYzoKIGNsYXNz
IEZQUkluZm8gewogcHVibGljOgogICAgIHR5cGVkZWYgRlBSUmVnIFJlZ2lzdGVyVHlwZTsKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSA3OwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gMjsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gNzsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSAyOwogCiAgICAg
Ly8gVGVtcG9yYXJ5IHJlZ2lzdGVycy4KLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDAg
PSBNSVBTUmVnaXN0ZXJzOjpmMDsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDEgPSBN
SVBTUmVnaXN0ZXJzOjpmMjsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDIgPSBNSVBT
UmVnaXN0ZXJzOjpmNDsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDMgPSBNSVBTUmVn
aXN0ZXJzOjpmNjsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDQgPSBNSVBTUmVnaXN0
ZXJzOjpmODsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGZwUmVnVDUgPSBNSVBTUmVnaXN0ZXJz
OjpmMTA7Ci0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyBmcFJlZ1Q2ID0gTUlQU1JlZ2lzdGVyczo6
ZjE4OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDAgPSBNSVBTUmVnaXN0ZXJz
OjpmMDsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1QxID0gTUlQU1JlZ2lzdGVy
czo6ZjI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUMiA9IE1JUFNSZWdpc3Rl
cnM6OmY0OworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIGZwUmVnVDMgPSBNSVBTUmVnaXN0
ZXJzOjpmNjsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1Q0ID0gTUlQU1JlZ2lz
dGVyczo6Zjg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBGUFJSZWcgZnBSZWdUNSA9IE1JUFNSZWdp
c3RlcnM6OmYxMDsKKyAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyBmcFJlZ1Q2ID0gTUlQU1Jl
Z2lzdGVyczo6ZjE4OwogCi0gICAgc3RhdGljIGNvbnN0IEZQUlJlZyByZXR1cm5WYWx1ZUZQUiA9
IE1JUFNSZWdpc3RlcnM6OmYwOworICAgIHN0YXRpYyBjb25zdGV4cHIgRlBSUmVnIHJldHVyblZh
bHVlRlBSID0gTUlQU1JlZ2lzdGVyczo6ZjA7CiAKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVnIGFy
Z3VtZW50RlBSMCA9IE1JUFNSZWdpc3RlcnM6OmYxMjsKLSAgICBzdGF0aWMgY29uc3QgRlBSUmVn
IGFyZ3VtZW50RlBSMSA9IE1JUFNSZWdpc3RlcnM6OmYxNDsKKyAgICBzdGF0aWMgY29uc3RleHBy
IEZQUlJlZyBhcmd1bWVudEZQUjAgPSBNSVBTUmVnaXN0ZXJzOjpmMTI7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBGUFJSZWcgYXJndW1lbnRGUFIxID0gTUlQU1JlZ2lzdGVyczo6ZjE0OwogCiAgICAg
c3RhdGljIEZQUlJlZyB0b1JlZ2lzdGVyKHVuc2lnbmVkIGluZGV4KQogICAgIHsKQEAgLTMyNCw3
ICszMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6ZnByTmFt
ZShyZWcpOwogICAgIH0KIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbnZhbGlkSW5kZXgg
PSAweGZmZmZmZmZmOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgSW52YWxpZEluZGV4
ID0gMHhmZmZmZmZmZjsKIH07CiAKICNlbmRpZiAvLyBDUFUoTUlQUykKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvR1BSSW5mby5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0dQUkluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMzM3LDI2ICszMzcsMjYg
QEAgcHJpdmF0ZToKIGNsYXNzIEdQUkluZm8gewogcHVibGljOgogICAgIHR5cGVkZWYgR1BSUmVn
IFJlZ2lzdGVyVHlwZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3Rl
cnMgPSA2OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0
ZXJzID0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUzsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gNjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVH
SVNURVJTOwogCiAgICAgLy8gVGVtcG9yYXJ5IHJlZ2lzdGVycy4KLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJlZ1QwID0gWDg2UmVnaXN0ZXJzOjplYXg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyByZWdUMSA9IFg4NlJlZ2lzdGVyczo6ZWR4OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVn
VDIgPSBYODZSZWdpc3RlcnM6OmVjeDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0g
WDg2UmVnaXN0ZXJzOjplYng7IC8vIENhbGxlZS1zYXZlCi0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyByZWdUNCA9IFg4NlJlZ2lzdGVyczo6ZXNpOyAvLyBDYWxsZWUtc2F2ZQotICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgcmVnVDUgPSBYODZSZWdpc3RlcnM6OmVkaTsgLy8gQ2FsbGVlLXNhdmUKLSAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpl
YnA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDAgPSBYODZSZWdpc3RlcnM6OmVh
eDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMSA9IFg4NlJlZ2lzdGVyczo6ZWR4
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QyID0gWDg2UmVnaXN0ZXJzOjplY3g7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDMgPSBYODZSZWdpc3RlcnM6OmVieDsg
Ly8gQ2FsbGVlLXNhdmUKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUNCA9IFg4NlJl
Z2lzdGVyczo6ZXNpOyAvLyBDYWxsZWUtc2F2ZQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVn
IHJlZ1Q1ID0gWDg2UmVnaXN0ZXJzOjplZGk7IC8vIENhbGxlZS1zYXZlCisgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVicDsKICAg
ICAvLyBUaGVzZSBjb25zdGFudHMgcHJvdmlkZSB0aGUgbmFtZXMgZm9yIHRoZSBnZW5lcmFsIHB1
cnBvc2UgYXJndW1lbnQgJiByZXR1cm4gdmFsdWUgcmVnaXN0ZXJzLgotICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgYXJndW1lbnRHUFIwID0gWDg2UmVnaXN0ZXJzOjplY3g7IC8vIHJlZ1QyCi0gICAg
c3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjEgPSBYODZSZWdpc3RlcnM6OmVkeDsgLy8g
cmVnVDEKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMiA9IFg4NlJlZ2lzdGVy
czo6ZWF4OyAvLyByZWdUMAotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIzID0g
WDg2UmVnaXN0ZXJzOjplYng7IC8vIHJlZ1QzCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25B
cmdHUFIwID0gWDg2UmVnaXN0ZXJzOjplc2k7IC8vIHJlZ1Q0Ci0gICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyByZXR1cm5WYWx1ZUdQUiA9IFg4NlJlZ2lzdGVyczo6ZWF4OyAvLyByZWdUMAotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIyID0gWDg2UmVnaXN0ZXJzOjplZHg7IC8v
IHJlZ1QxCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIg
PSBYODZSZWdpc3RlcnM6OmVjeDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVu
dEdQUjAgPSBYODZSZWdpc3RlcnM6OmVjeDsgLy8gcmVnVDIKKyAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyBhcmd1bWVudEdQUjEgPSBYODZSZWdpc3RlcnM6OmVkeDsgLy8gcmVnVDEKKyAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjIgPSBYODZSZWdpc3RlcnM6OmVheDsg
Ly8gcmVnVDAKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjMgPSBYODZS
ZWdpc3RlcnM6OmVieDsgLy8gcmVnVDMKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBub25B
cmdHUFIwID0gWDg2UmVnaXN0ZXJzOjplc2k7IC8vIHJlZ1Q0CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSBYODZSZWdpc3RlcnM6OmVheDsgLy8gcmVnVDAKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSBYODZSZWdpc3RlcnM6
OmVkeDsgLy8gcmVnVDEKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBub25QcmVzZXJ2ZWRO
b25SZXR1cm5HUFIgPSBYODZSZWdpc3RlcnM6OmVjeDsKIAogICAgIHN0YXRpYyBHUFJSZWcgdG9S
ZWdpc3Rlcih1bnNpZ25lZCBpbmRleCkKICAgICB7CkBAIC0zODYsNyArMzg2LDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6Omdwck5hbWUocmVnKTsKICAgICB9CiAK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW52YWxpZEluZGV4ID0gMHhmZmZmZmZmZjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEludmFsaWRJbmRleCA9IDB4ZmZmZmZmZmY7CiB9
OwogCiAjZW5kaWYgLy8gQ1BVKFg4NikKQEAgLTQwMyw2OCArNDAzLDY4IEBAIHB1YmxpYzoKIGNs
YXNzIEdQUkluZm8gewogcHVibGljOgogICAgIHR5cGVkZWYgR1BSUmVnIFJlZ2lzdGVyVHlwZTsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSAxMTsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9P
Rl9BUkdVTUVOVF9SRUdJU1RFUlM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1i
ZXJPZlJlZ2lzdGVycyA9IDExOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVy
T2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlM7CiAKICAg
ICAvLyBUaGVzZSByZWdpc3RlcnMgbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVC4KLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYnA7Ci0gICAg
c3RhdGljIGNvbnN0IEdQUlJlZyB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6
OnIxNDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHRhZ01hc2tSZWdpc3RlciA9IFg4NlJlZ2lz
dGVyczo6cjE1OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVy
ID0gWDg2UmVnaXN0ZXJzOjplYnA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgdGFnVHlw
ZU51bWJlclJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyMTQ7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgdGFnTWFza1JlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyMTU7CiAKICAgICAvLyBU
ZW1wb3JhcnkgcmVnaXN0ZXJzLgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDAgPSBYODZS
ZWdpc3RlcnM6OmVheDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMCA9IFg4NlJl
Z2lzdGVyczo6ZWF4OwogI2lmICFPUyhXSU5ET1dTKQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
cmVnVDEgPSBYODZSZWdpc3RlcnM6OmVzaTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Qy
ID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMyA9IFg4
NlJlZ2lzdGVyczo6ZWN4OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDQgPSBYODZSZWdp
c3RlcnM6OnI4OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDUgPSBYODZSZWdpc3RlcnM6
OnIxMDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q2ID0gWDg2UmVnaXN0ZXJzOjplZGk7
Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNyA9IFg4NlJlZ2lzdGVyczo6cjk7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDEgPSBYODZSZWdpc3RlcnM6OmVzaTsKKyAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMiA9IFg4NlJlZ2lzdGVyczo6ZWR4OworICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QzID0gWDg2UmVnaXN0ZXJzOjplY3g7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDQgPSBYODZSZWdpc3RlcnM6OnI4OworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q1ID0gWDg2UmVnaXN0ZXJzOjpyMTA7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgcmVnVDYgPSBYODZSZWdpc3RlcnM6OmVkaTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyByZWdUNyA9IFg4NlJlZ2lzdGVyczo6cjk7CiAjZWxzZQotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgcmVnVDEgPSBYODZSZWdpc3RlcnM6OmVkeDsKLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ1QyID0gWDg2UmVnaXN0ZXJzOjpyODsKLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJlZ1QzID0gWDg2UmVnaXN0ZXJzOjpyOTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ1Q0ID0gWDg2UmVnaXN0ZXJzOjpyMTA7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdU
NSA9IFg4NlJlZ2lzdGVyczo6ZWN4OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Qx
ID0gWDg2UmVnaXN0ZXJzOjplZHg7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDIg
PSBYODZSZWdpc3RlcnM6OnI4OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QzID0g
WDg2UmVnaXN0ZXJzOjpyOTsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUNCA9IFg4
NlJlZ2lzdGVyczo6cjEwOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q1ID0gWDg2
UmVnaXN0ZXJzOjplY3g7CiAjZW5kaWYKIAotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1Mw
ID0gWDg2UmVnaXN0ZXJzOjplYng7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnQ1Mw
ID0gWDg2UmVnaXN0ZXJzOjplYng7CiAKICNpZiAhT1MoV0lORE9XUykKLSAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIHJlZ0NTMSA9IFg4NlJlZ2lzdGVyczo6cjEyOwotICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnQ1MyID0gWDg2UmVnaXN0ZXJzOjpyMTM7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyByZWdDUzMgPSBYODZSZWdpc3RlcnM6OnIxNDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJl
Z0NTNCA9IFg4NlJlZ2lzdGVyczo6cjE1OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJl
Z0NTMSA9IFg4NlJlZ2lzdGVyczo6cjEyOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJl
Z0NTMiA9IFg4NlJlZ2lzdGVyczo6cjEzOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJl
Z0NTMyA9IFg4NlJlZ2lzdGVyczo6cjE0OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJl
Z0NTNCA9IFg4NlJlZ2lzdGVyczo6cjE1OwogI2Vsc2UKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ0NTMSA9IFg4NlJlZ2lzdGVyczo6ZXNpOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVn
Q1MyID0gWDg2UmVnaXN0ZXJzOjplZGk7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzMg
PSBYODZSZWdpc3RlcnM6OnIxMjsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0NTNCA9IFg4
NlJlZ2lzdGVyczo6cjEzOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1M1ID0gWDg2UmVn
aXN0ZXJzOjpyMTQ7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzYgPSBYODZSZWdpc3Rl
cnM6OnIxNTsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdDUzEgPSBYODZSZWdpc3Rl
cnM6OmVzaTsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdDUzIgPSBYODZSZWdpc3Rl
cnM6OmVkaTsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdDUzMgPSBYODZSZWdpc3Rl
cnM6OnIxMjsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdDUzQgPSBYODZSZWdpc3Rl
cnM6OnIxMzsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdDUzUgPSBYODZSZWdpc3Rl
cnM6OnIxNDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdDUzYgPSBYODZSZWdpc3Rl
cnM6OnIxNTsKICNlbmRpZgogCiAgICAgLy8gVGhlc2UgY29uc3RhbnRzIHByb3ZpZGUgdGhlIG5h
bWVzIGZvciB0aGUgZ2VuZXJhbCBwdXJwb3NlIGFyZ3VtZW50ICYgcmV0dXJuIHZhbHVlIHJlZ2lz
dGVycy4KICNpZiAhT1MoV0lORE9XUykKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50
R1BSMCA9IFg4NlJlZ2lzdGVyczo6ZWRpOyAvLyByZWdUNgotICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgYXJndW1lbnRHUFIxID0gWDg2UmVnaXN0ZXJzOjplc2k7IC8vIHJlZ1QxCi0gICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjIgPSBYODZSZWdpc3RlcnM6OmVkeDsgLy8gcmVnVDIK
LSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IFg4NlJlZ2lzdGVyczo6ZWN4
OyAvLyByZWdUMwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFI0ID0gWDg2UmVn
aXN0ZXJzOjpyODsgLy8gcmVnVDQKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BS
NSA9IFg4NlJlZ2lzdGVyczo6cjk7IC8vIHJlZ1Q3CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgYXJndW1lbnRHUFIwID0gWDg2UmVnaXN0ZXJzOjplZGk7IC8vIHJlZ1Q2CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgYXJndW1lbnRHUFIxID0gWDg2UmVnaXN0ZXJzOjplc2k7IC8vIHJl
Z1QxCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgYXJndW1lbnRHUFIyID0gWDg2UmVnaXN0
ZXJzOjplZHg7IC8vIHJlZ1QyCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgYXJndW1lbnRH
UFIzID0gWDg2UmVnaXN0ZXJzOjplY3g7IC8vIHJlZ1QzCisgICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgYXJndW1lbnRHUFI0ID0gWDg2UmVnaXN0ZXJzOjpyODsgLy8gcmVnVDQKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjUgPSBYODZSZWdpc3RlcnM6OnI5OyAvLyBy
ZWdUNwogI2Vsc2UKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IFg4NlJl
Z2lzdGVyczo6ZWN4OyAvLyByZWdUNQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRH
UFIxID0gWDg2UmVnaXN0ZXJzOjplZHg7IC8vIHJlZ1QxCi0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyBhcmd1bWVudEdQUjIgPSBYODZSZWdpc3RlcnM6OnI4OyAvLyByZWdUMgotICAgIHN0YXRpYyBj
b25zdCBHUFJSZWcgYXJndW1lbnRHUFIzID0gWDg2UmVnaXN0ZXJzOjpyOTsgLy8gcmVnVDMKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjAgPSBYODZSZWdpc3RlcnM6OmVj
eDsgLy8gcmVnVDUKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjEgPSBY
ODZSZWdpc3RlcnM6OmVkeDsgLy8gcmVnVDEKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBh
cmd1bWVudEdQUjIgPSBYODZSZWdpc3RlcnM6OnI4OyAvLyByZWdUMgorICAgIHN0YXRpYyBjb25z
dGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSMyA9IFg4NlJlZ2lzdGVyczo6cjk7IC8vIHJlZ1QzCiAj
ZW5kaWYKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjAgPSBYODZSZWdpc3RlcnM6
OnIxMDsgLy8gcmVnVDUgKHJlZ1Q0IG9uIFdpbmRvd3MpCi0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyByZXR1cm5WYWx1ZUdQUiA9IFg4NlJlZ2lzdGVyczo6ZWF4OyAvLyByZWdUMAotICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIyID0gWDg2UmVnaXN0ZXJzOjplZHg7IC8vIHJl
Z1QxIG9yIHJlZ1QyCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1
cm5HUFIgPSBYODZSZWdpc3RlcnM6OnIxMDsgLy8gcmVnVDUgKHJlZ1Q0IG9uIFdpbmRvd3MpCi0g
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25Bcmd1bWVudEdQUjAgPSBYODZS
ZWdpc3RlcnM6OnIxMDsgLy8gcmVnVDUgKHJlZ1Q0IG9uIFdpbmRvd3MpCi0gICAgc3RhdGljIGNv
bnN0IEdQUlJlZyBub25QcmVzZXJ2ZWROb25Bcmd1bWVudEdQUjEgPSBYODZSZWdpc3RlcnM6OmVh
eDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBub25BcmdHUFIwID0gWDg2UmVnaXN0ZXJz
OjpyMTA7IC8vIHJlZ1Q1IChyZWdUNCBvbiBXaW5kb3dzKQorICAgIHN0YXRpYyBjb25zdGV4cHIg
R1BSUmVnIHJldHVyblZhbHVlR1BSID0gWDg2UmVnaXN0ZXJzOjplYXg7IC8vIHJlZ1QwCisgICAg
c3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuVmFsdWVHUFIyID0gWDg2UmVnaXN0ZXJzOjpl
ZHg7IC8vIHJlZ1QxIG9yIHJlZ1QyCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbm9uUHJl
c2VydmVkTm9uUmV0dXJuR1BSID0gWDg2UmVnaXN0ZXJzOjpyMTA7IC8vIHJlZ1Q1IChyZWdUNCBv
biBXaW5kb3dzKQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5vblByZXNlcnZlZE5vbkFy
Z3VtZW50R1BSMCA9IFg4NlJlZ2lzdGVyczo6cjEwOyAvLyByZWdUNSAocmVnVDQgb24gV2luZG93
cykKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBub25QcmVzZXJ2ZWROb25Bcmd1bWVudEdQ
UjEgPSBYODZSZWdpc3RlcnM6OmVheDsKIAogICAgIC8vIEZJWE1FOiBJIGJlbGlldmUgdGhhdCBh
bGwgdXNlcyBvZiB0aGlzIGFyZSBkZWFkIGluIHRoZSBzZW5zZSB0aGF0IGl0IGp1c3QgY2F1c2Vz
IHRoZSBzY3JhdGNoCiAgICAgLy8gcmVnaXN0ZXIgYWxsb2NhdG9yIHRvIHNlbGVjdCBhIGRpZmZl
cmVudCByZWdpc3RlciBhbmQgcG90ZW50aWFsbHkgc3BpbGwgdGhpbmdzLiBJdCB3b3VsZCBiZSBi
ZXR0ZXIKQEAgLTUyMSw3ICs1MjEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiByZXNlcnZl
ZFJlZ2lzdGVyczsKICAgICB9CiAgICAgCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEludmFs
aWRJbmRleCA9IDB4ZmZmZmZmZmY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBJbnZh
bGlkSW5kZXggPSAweGZmZmZmZmZmOwogfTsKIAogI2VuZGlmIC8vIENQVShYODZfNjQpCkBAIC01
MzMsMzIgKzUzMywzMiBAQCBwdWJsaWM6CiBjbGFzcyBHUFJJbmZvIHsKIHB1YmxpYzoKICAgICB0
eXBlZGVmIEdQUlJlZyBSZWdpc3RlclR5cGU7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51
bWJlck9mUmVnaXN0ZXJzID0gOTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZB
cmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlM7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDk7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09G
X0FSR1VNRU5UX1JFR0lTVEVSUzsKIAogICAgIC8vIFRlbXBvcmFyeSByZWdpc3RlcnMuCi0gICAg
c3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMCA9IEFSTVJlZ2lzdGVyczo6cjA7Ci0gICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyByZWdUMSA9IEFSTVJlZ2lzdGVyczo6cjE7Ci0gICAgc3RhdGljIGNvbnN0
IEdQUlJlZyByZWdUMiA9IEFSTVJlZ2lzdGVyczo6cjI7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyByZWdUMyA9IEFSTVJlZ2lzdGVyczo6cjM7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdU
NCA9IEFSTVJlZ2lzdGVyczo6cjg7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNSA9IEFS
TVJlZ2lzdGVyczo6cjk7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUNiA9IEFSTVJlZ2lz
dGVyczo6cjEwOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDcgPSBBUk1SZWdpc3RlcnM6
OnI1OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDggPSBBUk1SZWdpc3RlcnM6OnI0Owot
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1MwID0gQVJNUmVnaXN0ZXJzOjpyMTE7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDAgPSBBUk1SZWdpc3RlcnM6OnIwOworICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QxID0gQVJNUmVnaXN0ZXJzOjpyMTsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZWdUMiA9IEFSTVJlZ2lzdGVyczo6cjI7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgcmVnVDMgPSBBUk1SZWdpc3RlcnM6OnIzOworICAgIHN0YXRpYyBj
b25zdGV4cHIgR1BSUmVnIHJlZ1Q0ID0gQVJNUmVnaXN0ZXJzOjpyODsKKyAgICBzdGF0aWMgY29u
c3RleHByIEdQUlJlZyByZWdUNSA9IEFSTVJlZ2lzdGVyczo6cjk7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgcmVnVDYgPSBBUk1SZWdpc3RlcnM6OnIxMDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEdQUlJlZyByZWdUNyA9IEFSTVJlZ2lzdGVyczo6cjU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgcmVnVDggPSBBUk1SZWdpc3RlcnM6OnI0OworICAgIHN0YXRpYyBjb25zdGV4cHIg
R1BSUmVnIHJlZ0NTMCA9IEFSTVJlZ2lzdGVyczo6cjExOwogICAgIC8vIFRoZXNlIHJlZ2lzdGVy
cyBtYXRjaCB0aGUgYmFzZWxpbmUgSklULgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgY2FsbEZy
YW1lUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OmZwOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BS
UmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpmcDsKICAgICAvLyBUaGVzZSBj
b25zdGFudHMgcHJvdmlkZSB0aGUgbmFtZXMgZm9yIHRoZSBnZW5lcmFsIHB1cnBvc2UgYXJndW1l
bnQgJiByZXR1cm4gdmFsdWUgcmVnaXN0ZXJzLgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJn
dW1lbnRHUFIwID0gQVJNUmVnaXN0ZXJzOjpyMDsgLy8gcmVnVDAKLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIGFyZ3VtZW50R1BSMSA9IEFSTVJlZ2lzdGVyczo6cjE7IC8vIHJlZ1QxCi0gICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjIgPSBBUk1SZWdpc3RlcnM6OnIyOyAvLyByZWdU
MgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIzID0gQVJNUmVnaXN0ZXJzOjpy
MzsgLy8gcmVnVDMKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjAgPSBBUk1SZWdp
c3RlcnM6OnI0OyAvLyByZWdUOAotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMSA9
IEFSTVJlZ2lzdGVyczo6cjg7IC8vIHJlZ1Q0Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1
cm5WYWx1ZUdQUiA9IEFSTVJlZ2lzdGVyczo6cjA7IC8vIHJlZ1QwCi0gICAgc3RhdGljIGNvbnN0
IEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSBBUk1SZWdpc3RlcnM6OnIxOyAvLyByZWdUMQotICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSID0gQVJNUmVnaXN0
ZXJzOjpyNTsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjAgPSBBUk1S
ZWdpc3RlcnM6OnIwOyAvLyByZWdUMAorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3Vt
ZW50R1BSMSA9IEFSTVJlZ2lzdGVyczo6cjE7IC8vIHJlZ1QxCisgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgYXJndW1lbnRHUFIyID0gQVJNUmVnaXN0ZXJzOjpyMjsgLy8gcmVnVDIKKyAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjMgPSBBUk1SZWdpc3RlcnM6OnIzOyAv
LyByZWdUMworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5vbkFyZ0dQUjAgPSBBUk1SZWdp
c3RlcnM6OnI0OyAvLyByZWdUOAorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5vbkFyZ0dQ
UjEgPSBBUk1SZWdpc3RlcnM6OnI4OyAvLyByZWdUNAorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BS
UmVnIHJldHVyblZhbHVlR1BSID0gQVJNUmVnaXN0ZXJzOjpyMDsgLy8gcmVnVDAKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSBBUk1SZWdpc3RlcnM6OnIxOyAv
LyByZWdUMQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG5vblByZXNlcnZlZE5vblJldHVy
bkdQUiA9IEFSTVJlZ2lzdGVyczo6cjU7CiAKICAgICBzdGF0aWMgR1BSUmVnIHRvUmVnaXN0ZXIo
dW5zaWduZWQgaW5kZXgpCiAgICAgewpAQCAtNTkwLDcgKzU5MCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpncHJOYW1lKHJlZyk7CiAgICAgfQogCi0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIEludmFsaWRJbmRleCA9IDB4ZmZmZmZmZmY7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBJbnZhbGlkSW5kZXggPSAweGZmZmZmZmZmOwogfTsKIAogI2Vu
ZGlmIC8vIENQVShBUk0pCkBAIC02MDMsNTggKzYwMyw1OCBAQCBwdWJsaWM6CiBjbGFzcyBHUFJJ
bmZvIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEdQUlJlZyBSZWdpc3RlclR5cGU7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gMTY7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSA4OworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSAxNjsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSA4OwogCiAgICAgLy8g
VGhlc2UgcmVnaXN0ZXJzIG1hdGNoIHRoZSBiYXNlbGluZSBKSVQuCi0gICAgc3RhdGljIGNvbnN0
IEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjpmcDsKLSAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIHRhZ1R5cGVOdW1iZXJSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjp4
Mjc7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyB0YWdNYXNrUmVnaXN0ZXIgPSBBUk02NFJlZ2lz
dGVyczo6eDI4OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgZGF0YVRlbXBSZWdpc3RlciA9IE1h
Y3JvQXNzZW1ibGVyOjpkYXRhVGVtcFJlZ2lzdGVyOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
bWVtb3J5VGVtcFJlZ2lzdGVyID0gTWFjcm9Bc3NlbWJsZXI6Om1lbW9yeVRlbXBSZWdpc3RlcjsK
KyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IEFSTTY0UmVn
aXN0ZXJzOjpmcDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyB0YWdUeXBlTnVtYmVyUmVn
aXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6eDI3OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVn
IHRhZ01hc2tSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjp4Mjg7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgZGF0YVRlbXBSZWdpc3RlciA9IE1hY3JvQXNzZW1ibGVyOjpkYXRhVGVtcFJl
Z2lzdGVyOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG1lbW9yeVRlbXBSZWdpc3RlciA9
IE1hY3JvQXNzZW1ibGVyOjptZW1vcnlUZW1wUmVnaXN0ZXI7CiAgICAgLy8gVGVtcG9yYXJ5IHJl
Z2lzdGVycy4KLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QwID0gQVJNNjRSZWdpc3RlcnM6
OngwOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDEgPSBBUk02NFJlZ2lzdGVyczo6eDE7
Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMiA9IEFSTTY0UmVnaXN0ZXJzOjp4MjsKLSAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gQVJNNjRSZWdpc3RlcnM6OngzOwotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgcmVnVDQgPSBBUk02NFJlZ2lzdGVyczo6eDQ7Ci0gICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyByZWdUNSA9IEFSTTY0UmVnaXN0ZXJzOjp4NTsKLSAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIHJlZ1Q2ID0gQVJNNjRSZWdpc3RlcnM6Ong2OwotICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnVDcgPSBBUk02NFJlZ2lzdGVyczo6eDc7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyByZWdUOCA9IEFSTTY0UmVnaXN0ZXJzOjp4ODsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJl
Z1Q5ID0gQVJNNjRSZWdpc3RlcnM6Ong5OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDEw
ID0gQVJNNjRSZWdpc3RlcnM6OngxMDsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxMSA9
IEFSTTY0UmVnaXN0ZXJzOjp4MTE7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMTIgPSBB
Uk02NFJlZ2lzdGVyczo6eDEyOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDEzID0gQVJN
NjRSZWdpc3RlcnM6OngxMzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxNCA9IEFSTTY0
UmVnaXN0ZXJzOjp4MTQ7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMTUgPSBBUk02NFJl
Z2lzdGVyczo6eDE1OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1MwID0gQVJNNjRSZWdp
c3RlcnM6OngxOTsgLy8gVXNlZCBieSBGVEwgb25seQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
cmVnQ1MxID0gQVJNNjRSZWdpc3RlcnM6OngyMDsgLy8gVXNlZCBieSBGVEwgb25seQotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1MyID0gQVJNNjRSZWdpc3RlcnM6OngyMTsgLy8gVXNlZCBi
eSBGVEwgb25seQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1MzID0gQVJNNjRSZWdpc3Rl
cnM6OngyMjsgLy8gVXNlZCBieSBGVEwgb25seQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVn
Q1M0ID0gQVJNNjRSZWdpc3RlcnM6OngyMzsgLy8gVXNlZCBieSBGVEwgb25seQotICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgcmVnQ1M1ID0gQVJNNjRSZWdpc3RlcnM6OngyNDsgLy8gVXNlZCBieSBG
VEwgb25seQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1M2ID0gQVJNNjRSZWdpc3RlcnM6
OngyNTsgLy8gVXNlZCBieSBGVEwgb25seQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1M3
ID0gQVJNNjRSZWdpc3RlcnM6OngyNjsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0NTOCA9
IEFSTTY0UmVnaXN0ZXJzOjp4Mjc7IC8vIHRhZ1R5cGVOdW1iZXIKLSAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIHJlZ0NTOSA9IEFSTTY0UmVnaXN0ZXJzOjp4Mjg7IC8vIHRhZ01hc2sKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZWdUMCA9IEFSTTY0UmVnaXN0ZXJzOjp4MDsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZWdUMSA9IEFSTTY0UmVnaXN0ZXJzOjp4MTsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZWdUMiA9IEFSTTY0UmVnaXN0ZXJzOjp4MjsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZWdUMyA9IEFSTTY0UmVnaXN0ZXJzOjp4MzsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZWdUNCA9IEFSTTY0UmVnaXN0ZXJzOjp4NDsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZWdUNSA9IEFSTTY0UmVnaXN0ZXJzOjp4NTsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZWdUNiA9IEFSTTY0UmVnaXN0ZXJzOjp4NjsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZWdUNyA9IEFSTTY0UmVnaXN0ZXJzOjp4NzsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZWdUOCA9IEFSTTY0UmVnaXN0ZXJzOjp4ODsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZWdUOSA9IEFSTTY0UmVnaXN0ZXJzOjp4OTsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZWdUMTAgPSBBUk02NFJlZ2lzdGVyczo6eDEwOworICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QxMSA9IEFSTTY0UmVnaXN0ZXJzOjp4MTE7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDEyID0gQVJNNjRSZWdpc3RlcnM6OngxMjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMTMgPSBBUk02NFJlZ2lzdGVyczo6eDEzOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QxNCA9IEFSTTY0UmVnaXN0ZXJzOjp4MTQ7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDE1ID0gQVJNNjRSZWdpc3RlcnM6Ongx
NTsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdDUzAgPSBBUk02NFJlZ2lzdGVyczo6
eDE5OyAvLyBVc2VkIGJ5IEZUTCBvbmx5CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVn
Q1MxID0gQVJNNjRSZWdpc3RlcnM6OngyMDsgLy8gVXNlZCBieSBGVEwgb25seQorICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTMiA9IEFSTTY0UmVnaXN0ZXJzOjp4MjE7IC8vIFVzZWQg
YnkgRlRMIG9ubHkKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdDUzMgPSBBUk02NFJl
Z2lzdGVyczo6eDIyOyAvLyBVc2VkIGJ5IEZUTCBvbmx5CisgICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgcmVnQ1M0ID0gQVJNNjRSZWdpc3RlcnM6OngyMzsgLy8gVXNlZCBieSBGVEwgb25seQor
ICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ0NTNSA9IEFSTTY0UmVnaXN0ZXJzOjp4MjQ7
IC8vIFVzZWQgYnkgRlRMIG9ubHkKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdDUzYg
PSBBUk02NFJlZ2lzdGVyczo6eDI1OyAvLyBVc2VkIGJ5IEZUTCBvbmx5CisgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgcmVnQ1M3ID0gQVJNNjRSZWdpc3RlcnM6OngyNjsKKyAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyByZWdDUzggPSBBUk02NFJlZ2lzdGVyczo6eDI3OyAvLyB0YWdUeXBl
TnVtYmVyCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnQ1M5ID0gQVJNNjRSZWdpc3Rl
cnM6OngyODsgLy8gdGFnTWFzawogICAgIC8vIFRoZXNlIGNvbnN0YW50cyBwcm92aWRlIHRoZSBu
YW1lcyBmb3IgdGhlIGdlbmVyYWwgcHVycG9zZSBhcmd1bWVudCAmIHJldHVybiB2YWx1ZSByZWdp
c3RlcnMuCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBBUk02NFJlZ2lz
dGVyczo6eDA7IC8vIHJlZ1QwCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjEg
PSBBUk02NFJlZ2lzdGVyczo6eDE7IC8vIHJlZ1QxCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBh
cmd1bWVudEdQUjIgPSBBUk02NFJlZ2lzdGVyczo6eDI7IC8vIHJlZ1QyCi0gICAgc3RhdGljIGNv
bnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBBUk02NFJlZ2lzdGVyczo6eDM7IC8vIHJlZ1QzCi0g
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjQgPSBBUk02NFJlZ2lzdGVyczo6eDQ7
IC8vIHJlZ1Q0Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjUgPSBBUk02NFJl
Z2lzdGVyczo6eDU7IC8vIHJlZ1Q1Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQ
UjYgPSBBUk02NFJlZ2lzdGVyczo6eDY7IC8vIHJlZ1Q2Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJl
ZyBhcmd1bWVudEdQUjcgPSBBUk02NFJlZ2lzdGVyczo6eDc7IC8vIHJlZ1Q3Ci0gICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyBub25BcmdHUFIwID0gQVJNNjRSZWdpc3RlcnM6Ong4OyAvLyByZWdUOAot
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BSMSA9IEFSTTY0UmVnaXN0ZXJzOjp4OTsg
Ly8gcmVnVDkKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJldHVyblZhbHVlR1BSID0gQVJNNjRS
ZWdpc3RlcnM6OngwOyAvLyByZWdUMAotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFs
dWVHUFIyID0gQVJNNjRSZWdpc3RlcnM6OngxOyAvLyByZWdUMQotICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgbm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSID0gQVJNNjRSZWdpc3RlcnM6OngyOwotICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uUHJlc2VydmVkTm9uQXJndW1lbnRHUFIwID0gQVJNNjRS
ZWdpc3RlcnM6Ong4OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uUHJlc2VydmVkTm9uQXJn
dW1lbnRHUFIxID0gQVJNNjRSZWdpc3RlcnM6Ong5OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BS
UmVnIGFyZ3VtZW50R1BSMCA9IEFSTTY0UmVnaXN0ZXJzOjp4MDsgLy8gcmVnVDAKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyBhcmd1bWVudEdQUjEgPSBBUk02NFJlZ2lzdGVyczo6eDE7IC8v
IHJlZ1QxCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgYXJndW1lbnRHUFIyID0gQVJNNjRS
ZWdpc3RlcnM6OngyOyAvLyByZWdUMgorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3Vt
ZW50R1BSMyA9IEFSTTY0UmVnaXN0ZXJzOjp4MzsgLy8gcmVnVDMKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEdQUlJlZyBhcmd1bWVudEdQUjQgPSBBUk02NFJlZ2lzdGVyczo6eDQ7IC8vIHJlZ1Q0Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgYXJndW1lbnRHUFI1ID0gQVJNNjRSZWdpc3RlcnM6
Ong1OyAvLyByZWdUNQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGFyZ3VtZW50R1BSNiA9
IEFSTTY0UmVnaXN0ZXJzOjp4NjsgLy8gcmVnVDYKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJl
ZyBhcmd1bWVudEdQUjcgPSBBUk02NFJlZ2lzdGVyczo6eDc7IC8vIHJlZ1Q3CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgbm9uQXJnR1BSMCA9IEFSTTY0UmVnaXN0ZXJzOjp4ODsgLy8gcmVn
VDgKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBub25BcmdHUFIxID0gQVJNNjRSZWdpc3Rl
cnM6Ong5OyAvLyByZWdUOQorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblZhbHVl
R1BSID0gQVJNNjRSZWdpc3RlcnM6OngwOyAvLyByZWdUMAorICAgIHN0YXRpYyBjb25zdGV4cHIg
R1BSUmVnIHJldHVyblZhbHVlR1BSMiA9IEFSTTY0UmVnaXN0ZXJzOjp4MTsgLy8gcmVnVDEKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBub25QcmVzZXJ2ZWROb25SZXR1cm5HUFIgPSBBUk02
NFJlZ2lzdGVyczo6eDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbm9uUHJlc2VydmVk
Tm9uQXJndW1lbnRHUFIwID0gQVJNNjRSZWdpc3RlcnM6Ong4OworICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIG5vblByZXNlcnZlZE5vbkFyZ3VtZW50R1BSMSA9IEFSTTY0UmVnaXN0ZXJzOjp4
OTsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHBhdGNocG9pbnRTY3JhdGNoUmVnaXN0ZXI7CiAK
ICAgICAvLyBHUFJSZWcgbWFwcGluZyBpcyBkaXJlY3QsIHRoZSBtYWNoaW5lIHJlZ2lzdGVyIG51
bWJlcnMgY2FuCkBAIC03MDksNyArNzA5LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVz
ZXJ2ZWRSZWdpc3RlcnM7CiAgICAgfQogICAgIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJ
bnZhbGlkSW5kZXggPSAweGZmZmZmZmZmOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
SW52YWxpZEluZGV4ID0gMHhmZmZmZmZmZjsKIH07CiAKICNlbmRpZiAvLyBDUFUoQVJNNjQpCkBA
IC03MjEsMzYgKzcyMSwzNiBAQCBwdWJsaWM6CiBjbGFzcyBHUFJJbmZvIHsKIHB1YmxpYzoKICAg
ICB0eXBlZGVmIEdQUlJlZyBSZWdpc3RlclR5cGU7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IG51bWJlck9mUmVnaXN0ZXJzID0gMTE7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJl
ck9mQXJndW1lbnRSZWdpc3RlcnMgPSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSAxMTsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSBOVU1C
RVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTOwogCiAgICAgLy8gcmVnVDAgbXVzdCBiZSB2MCBmb3Ig
cmV0dXJuaW5nIGEgMzItYml0IHZhbHVlLgogICAgIC8vIHJlZ1QxIG11c3QgYmUgdjEgZm9yIHJl
dHVybmluZyBhIHBhaXIgb2YgMzItYml0IHZhbHVlLgogCiAgICAgLy8gVGVtcG9yYXJ5IHJlZ2lz
dGVycy4KLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QwID0gTUlQU1JlZ2lzdGVyczo6djA7
Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMSA9IE1JUFNSZWdpc3RlcnM6OnYxOwotICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDIgPSBNSVBTUmVnaXN0ZXJzOjp0MjsKLSAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIHJlZ1QzID0gTUlQU1JlZ2lzdGVyczo6dDM7Ci0gICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdUNCA9IE1JUFNSZWdpc3RlcnM6OnQ0OwotICAgIHN0YXRpYyBjb25zdCBH
UFJSZWcgcmVnVDUgPSBNSVBTUmVnaXN0ZXJzOjp0NTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ1Q2ID0gTUlQU1JlZ2lzdGVyczo6dDY7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdU
NyA9IE1JUFNSZWdpc3RlcnM6OmEwOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDggPSBN
SVBTUmVnaXN0ZXJzOjphMTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1Q5ID0gTUlQU1Jl
Z2lzdGVyczo6YTI7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMTAgPSBNSVBTUmVnaXN0
ZXJzOjphMzsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMCA9IE1JUFNSZWdpc3Rl
cnM6OnYwOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QxID0gTUlQU1JlZ2lzdGVy
czo6djE7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDIgPSBNSVBTUmVnaXN0ZXJz
Ojp0MjsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMyA9IE1JUFNSZWdpc3RlcnM6
OnQzOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q0ID0gTUlQU1JlZ2lzdGVyczo6
dDQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDUgPSBNSVBTUmVnaXN0ZXJzOjp0
NTsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUNiA9IE1JUFNSZWdpc3RlcnM6OnQ2
OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Q3ID0gTUlQU1JlZ2lzdGVyczo6YTA7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDggPSBNSVBTUmVnaXN0ZXJzOjphMTsK
KyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUOSA9IE1JUFNSZWdpc3RlcnM6OmEyOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QxMCA9IE1JUFNSZWdpc3RlcnM6OmEzOwog
ICAgIC8vIFRoZXNlIHJlZ2lzdGVycyBtYXRjaCB0aGUgYmFzZWxpbmUgSklULgotICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBNSVBTUmVnaXN0ZXJzOjpmcDsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IE1JUFNSZWdpc3Rl
cnM6OmZwOwogICAgIC8vIFRoZXNlIGNvbnN0YW50cyBwcm92aWRlIHRoZSBuYW1lcyBmb3IgdGhl
IGdlbmVyYWwgcHVycG9zZSBhcmd1bWVudCAmIHJldHVybiB2YWx1ZSByZWdpc3RlcnMuCi0gICAg
c3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjAgPSBNSVBTUmVnaXN0ZXJzOjphMDsKLSAg
ICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IE1JUFNSZWdpc3RlcnM6OmExOwot
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgYXJndW1lbnRHUFIyID0gTUlQU1JlZ2lzdGVyczo6YTI7
Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBNSVBTUmVnaXN0ZXJzOjph
MzsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjAgPSByZWdUNDsKLSAgICBzdGF0
aWMgY29uc3QgR1BSUmVnIHJldHVyblZhbHVlR1BSID0gcmVnVDA7Ci0gICAgc3RhdGljIGNvbnN0
IEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSByZWdUMTsKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IG5vblByZXNlcnZlZE5vblJldHVybkdQUiA9IHJlZ1QyOwotICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgcmVnQ1MwID0gTUlQU1JlZ2lzdGVyczo6czA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgYXJndW1lbnRHUFIwID0gTUlQU1JlZ2lzdGVyczo6YTA7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgYXJndW1lbnRHUFIxID0gTUlQU1JlZ2lzdGVyczo6YTE7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgYXJndW1lbnRHUFIyID0gTUlQU1JlZ2lzdGVyczo6YTI7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBHUFJSZWcgYXJndW1lbnRHUFIzID0gTUlQU1JlZ2lzdGVyczo6YTM7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbm9uQXJnR1BSMCA9IHJlZ1Q0OworICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblZhbHVlR1BSID0gcmVnVDA7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgcmV0dXJuVmFsdWVHUFIyID0gcmVnVDE7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgbm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSID0gcmVnVDI7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgcmVnQ1MwID0gTUlQU1JlZ2lzdGVyczo6czA7CiAKICAgICBzdGF0
aWMgR1BSUmVnIHRvUmVnaXN0ZXIodW5zaWduZWQgaW5kZXgpCiAgICAgewpAQCAtNzg2LDcgKzc4
Niw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpncHJOYW1lKHJl
Zyk7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEludmFsaWRJbmRleCA9IDB4
ZmZmZmZmZmY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBJbnZhbGlkSW5kZXggPSAw
eGZmZmZmZmZmOwogfTsKIAogI2VuZGlmIC8vIENQVShNSVBTKQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9JQ1N0YXRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9JQ1N0YXRzLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSUNTdGF0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE2Myw3ICsxNjMsNyBAQCBwcml2YXRl
Ogogc3RydWN0IElDRXZlbnRIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBJ
Q0V2ZW50JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVh
bChjb25zdCBJQ0V2ZW50JiBhLCBjb25zdCBJQ0V2ZW50JiBiKSB7IHJldHVybiBhID09IGI7IH0K
LSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRy
dWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxl
dGVkID0gdHJ1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpAQCAtMTc5LDcgKzE3OSw3IEBA
IHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPEpTQzo6SUNFdmUKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RydWN0IEhhc2hUcmFpdHM7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRz
PEpTQzo6SUNFdmVudD4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpJQ0V2ZW50PiB7Ci0g
ICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaAkocmV2
aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaAko
d29ya2luZyBjb3B5KQpAQCAtODcsNyArODcsNyBAQCBwcml2YXRlOgogICAgICAgICB7CiAgICAg
ICAgICAgICByZXR1cm4gKHN0ZDo6Z2V0PDA+KGEpID09IHN0ZDo6Z2V0PDA+KGIpKSAmJiAoc3Rk
OjpnZXQ8MT4oYSkgPT0gc3RkOjpnZXQ8MT4oYikpICYmIChzdGQ6OmdldDwyPihhKSA9PSBzdGQ6
OmdldDwyPihiKSk7CiAgICAgICAgIH0KLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRv
Q29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgICAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBoYXNoUG9pbnRlcihUYWdnZWROYXRp
dmVGdW5jdGlvbiBwKQpAQCAtOTcsNyArOTcsNyBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICBz
dHJ1Y3QgSG9zdEZ1bmN0aW9uSGFzaFRyYWl0IDogV1RGOjpHZW5lcmljSGFzaFRyYWl0czxIb3N0
RnVuY3Rpb25LZXk+IHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVy
byA9IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJv
ID0gdHJ1ZTsKICAgICAgICAgc3RhdGljIEVtcHR5VmFsdWVUeXBlIGVtcHR5VmFsdWUoKSB7IHJl
dHVybiBzdGQ6Om1ha2VfdHVwbGUobnVsbHB0ciwgbnVsbHB0ciwgU3RyaW5nKCkpOyB9CiAKICAg
ICAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKEhvc3RGdW5jdGlvbktleSYg
c2xvdCkgeyBzdGQ6OmdldDwwPihzbG90KSA9IFRhZ2dlZE5hdGl2ZUZ1bmN0aW9uKC0xKTsgfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIyNiw3ICsyMjYs
NyBAQCBwcml2YXRlOgogc3RydWN0IFJlZ0hhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNo
KGNvbnN0IFJlZyYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wg
ZXF1YWwoY29uc3QgUmVnJiBhLCBjb25zdCBSZWcmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAg
IHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQg
PSB0cnVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkBAIC0yNDAsNyArMjQwLDcgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpSZWc+IAogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlND
OjpSZWc+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6UmVnPiB7Ci0gICAgc3RhdGljIGNv
bnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RG
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5oCShyZXZpc2lvbiAy
NDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yMjAsMTAgKzIyMCwxMCBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIC8v
IFRoZXNlIG9mZnNldHMgbWlycm9yIHRoZSBsb2dpYyBpbiBSZWcuaC4KLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgZ3ByT2Zmc2V0ID0gMDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZnBy
T2Zmc2V0ID0gZ3ByT2Zmc2V0ICsgTWFjcm9Bc3NlbWJsZXI6Om51bUdQUnM7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGhhc2hTcGVjaWFsQml0SW5kZXggPSBmcHJPZmZzZXQgKyBNYWNyb0Fz
c2VtYmxlcjo6bnVtRlBSczsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZGVsZXRlZEJpdElu
ZGV4ID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGdwck9mZnNldCA9IDA7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBmcHJPZmZzZXQgPSBncHJPZmZzZXQgKyBNYWNy
b0Fzc2VtYmxlcjo6bnVtR1BSczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGhhc2hT
cGVjaWFsQml0SW5kZXggPSBmcHJPZmZzZXQgKyBNYWNyb0Fzc2VtYmxlcjo6bnVtRlBSczsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGRlbGV0ZWRCaXRJbmRleCA9IDA7CiAgICAgCiAg
ICAgUmVnaXN0ZXJCaXRtYXAgbV9iaXRzOwogfTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBwcml2YXRl
Ogogc3RydWN0IFJlZ2lzdGVyU2V0SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29u
c3QgUmVnaXN0ZXJTZXQmIHNldCkgeyByZXR1cm4gc2V0Lmhhc2goKTsgfQogICAgIHN0YXRpYyBi
b29sIGVxdWFsKGNvbnN0IFJlZ2lzdGVyU2V0JiBhLCBjb25zdCBSZWdpc3RlclNldCYgYikgeyBy
ZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1w
dHlPckRlbGV0ZWQgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29t
cGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UZW1wUmVnaXN0ZXJTZXQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RlbXBSZWdpc3RlclNldC5oCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RlbXBSZWdpc3RlclNl
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTQsMTAgKzE5NCwxMCBAQCBwcml2YXRlOgogICAgICAg
ICByZXR1cm4gISEobV9zZXRbaSA+PiAzXSAmICgxIDw8IChpICYgNykpKTsKICAgICB9CiAgICAg
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRvdGFsTnVtYmVyT2ZSZWdpc3RlcnMgPQorICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgdG90YWxOdW1iZXJPZlJlZ2lzdGVycyA9CiAgICAg
ICAgIEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzICsgRlBSSW5mbzo6bnVtYmVyT2ZSZWdpc3Rl
cnM7CiAgICAgCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQnl0ZXNJblRlbXBS
ZWdpc3RlclNldCA9CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkJ5dGVz
SW5UZW1wUmVnaXN0ZXJTZXQgPQogICAgICAgICAodG90YWxOdW1iZXJPZlJlZ2lzdGVycyArIDcp
ID4+IDM7CiAKICAgICB1aW50OF90IG1fc2V0W251bWJlck9mQnl0ZXNJblRlbXBSZWdpc3RlclNl
dF07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAkocmV2
aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMiwxMSArMTIyLDExIEBAIHB1YmxpYzoKICAgICB0eXBl
ZGVmIE9iamVjdFBhdHRlcm5Ob2RlKiBPYmplY3RQYXR0ZXJuOwogICAgIHR5cGVkZWYgQmluZGlu
Z05vZGUqIEJpbmRpbmdQYXR0ZXJuOwogICAgIHR5cGVkZWYgQXNzaWdubWVudEVsZW1lbnROb2Rl
KiBBc3NpZ25tZW50RWxlbWVudDsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBDcmVhdGVzQVNUID0g
dHJ1ZTsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBOZWVkc0ZyZWVWYXJpYWJsZUluZm8gPSB0cnVl
OwotICAgIHN0YXRpYyBjb25zdCBib29sIENhblVzZUZ1bmN0aW9uQ2FjaGUgPSB0cnVlOwotICAg
IHN0YXRpYyBjb25zdCBpbnQgIERvbnRCdWlsZEtleXdvcmRzID0gMDsKLSAgICBzdGF0aWMgY29u
c3QgaW50ICBEb250QnVpbGRTdHJpbmdzID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
Q3JlYXRlc0FTVCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIE5lZWRzRnJlZVZh
cmlhYmxlSW5mbyA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIENhblVzZUZ1bmN0
aW9uQ2FjaGUgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50ICBEb250QnVpbGRLZXl3
b3JkcyA9IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgIERvbnRCdWlsZFN0cmluZ3MgPSAw
OwogCiAgICAgRXhwcmVzc2lvbk5vZGUqIG1ha2VCaW5hcnlOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYsIGludCB0b2tlbiwgc3RkOjpwYWlyPEV4cHJlc3Npb25Ob2RlKiwgQmluYXJ5T3BJbmZv
Piwgc3RkOjpwYWlyPEV4cHJlc3Npb25Ob2RlKiwgQmluYXJ5T3BJbmZvPik7CiAgICAgRXhwcmVz
c2lvbk5vZGUqIG1ha2VGdW5jdGlvbkNhbGxOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4
cHJlc3Npb25Ob2RlKiBmdW5jLCBib29sIHByZXZpb3VzQmFzZVdhc1N1cGVyLCBBcmd1bWVudHNO
b2RlKiBhcmdzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQsIHNpemVfdCBj
YWxsT3JBcHBseUNoaWxkRGVwdGgsIGJvb2wgaXNPcHRpb25hbENhbGwpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBA
QAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBr
ZGUub3JnKQogICogIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29t
KQotICogIENvcHlyaWdodCAoQykgMjAwMy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3IENhbWVyb24gWndhcmljaCAoY3d6d2Fy
aWNoQHV3YXRlcmxvby5jYSkKICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgTWFrcyBPcmxvdmljaAog
ICogIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgpAQCAt
MTg0NCw3ICsxODQ0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHVuc2lnbmVkIHN0YXJ0
Q29sdW1uKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydENvbHVtbjsgfQogICAgICAgICB1bnNpZ25l
ZCBlbmRDb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX2VuZENvbHVtbjsgfQogCi0gICAgICAgIHN0
YXRpYyBjb25zdCBib29sIHNjb3BlSXNGdW5jdGlvbiA9IGZhbHNlOworICAgICAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgc2NvcGVJc0Z1bmN0aW9uID0gZmFsc2U7CiAKICAgICBwcml2YXRlOgog
ICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gMCkgb3ZlcnJpZGU7CkBAIC0xODU5LDcgKzE4NTksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgQUxXQVlTX0lOTElORSB1bnNpZ25lZCBzdGFydENvbHVtbigpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KICAgICAgICAgdW5zaWduZWQgZW5kQ29sdW1uKCkgY29uc3QgeyByZXR1cm4gbV9lbmRD
b2x1bW47IH0KIAotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzY29wZUlzRnVuY3Rpb24gPSBm
YWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNjb3BlSXNGdW5jdGlvbiA9IGZh
bHNlOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwpAQCAtMTg3NCw3ICsxODc0LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHVuc2lnbmVkIHN0YXJ0Q29sdW1uKCkgY29uc3Qg
eyByZXR1cm4gbV9zdGFydENvbHVtbjsgfQogICAgICAgICB1bnNpZ25lZCBlbmRDb2x1bW4oKSBj
b25zdCB7IHJldHVybiBtX2VuZENvbHVtbjsgfQogCi0gICAgICAgIHN0YXRpYyBjb25zdCBib29s
IHNjb3BlSXNGdW5jdGlvbiA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
c2NvcGVJc0Z1bmN0aW9uID0gZmFsc2U7CiAKICAgICAgICAgTW9kdWxlU2NvcGVEYXRhJiBtb2R1
bGVTY29wZURhdGEoKQogICAgICAgICB7CkBAIC0yMTMxLDcgKzIxMzEsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgdW5zaWduZWQgc3RhcnRDb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX3N0
YXJ0Q29sdW1uOyB9CiAgICAgICAgIHVuc2lnbmVkIGVuZENvbHVtbigpIGNvbnN0IHsgcmV0dXJu
IG1fZW5kQ29sdW1uOyB9CiAKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2NvcGVJc0Z1bmN0
aW9uID0gdHJ1ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNjb3BlSXNGdW5jdGlv
biA9IHRydWU7CiAKICAgICBwcml2YXRlOgogICAgICAgICBJZGVudGlmaWVyIG1faWRlbnQ7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGVLZXkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGVLZXkuaAkocmV2
aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2Rl
S2V5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CkBAIC0xMjcsMTEgKzEyNywxMSBAQCBwdWJsaWM6CiAgICAgc3RydWN0IEhhc2ggewog
ICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBTb3VyY2VDb2RlS2V5JiBrZXkpIHsg
cmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgU291
cmNlQ29kZUtleSYgYSwgY29uc3QgU291cmNlQ29kZUtleSYgYikgeyByZXR1cm4gYSA9PSBiOyB9
Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gZmFsc2U7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogICAgIH07CiAKICAgICBzdHJ1Y3QgSGFzaFRyYWl0cyA6
IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxTb3VyY2VDb2RlS2V5PiB7Ci0gICAgICAgIHN0YXRpYyBj
b25zdCBib29sIGhhc0lzRW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKKyAgICAgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGhhc0lzRW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKICAgICAgICAg
c3RhdGljIGJvb2wgaXNFbXB0eVZhbHVlKGNvbnN0IFNvdXJjZUNvZGVLZXkmIGtleSkgeyByZXR1
cm4ga2V5LmlzTnVsbCgpOyB9CiAgICAgfTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9TeW50YXhDaGVja2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDAsMTEgKzE0MCwxMSBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBEZXN0cnVjdHVyaW5nUGF0dGVy
biBPYmplY3RQYXR0ZXJuOwogICAgIHR5cGVkZWYgRGVzdHJ1Y3R1cmluZ1BhdHRlcm4gUmVzdFBh
dHRlcm47CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBDcmVhdGVzQVNUID0gZmFsc2U7Ci0gICAg
c3RhdGljIGNvbnN0IGJvb2wgTmVlZHNGcmVlVmFyaWFibGVJbmZvID0gZmFsc2U7Ci0gICAgc3Rh
dGljIGNvbnN0IGJvb2wgQ2FuVXNlRnVuY3Rpb25DYWNoZSA9IHRydWU7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIERvbnRCdWlsZEtleXdvcmRzID0gTGV4ZXhGbGFnc0RvbnRCdWlsZEtleXdv
cmRzOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBEb250QnVpbGRTdHJpbmdzID0gTGV4ZXJG
bGFnc0RvbnRCdWlsZFN0cmluZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIENyZWF0ZXNB
U1QgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgTmVlZHNGcmVlVmFyaWFibGVJ
bmZvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIENhblVzZUZ1bmN0aW9uQ2Fj
aGUgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgRG9udEJ1aWxkS2V5d29y
ZHMgPSBMZXhleEZsYWdzRG9udEJ1aWxkS2V5d29yZHM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBEb250QnVpbGRTdHJpbmdzID0gTGV4ZXJGbGFnc0RvbnRCdWlsZFN0cmluZ3M7CiAK
ICAgICBpbnQgY3JlYXRlU291cmNlRWxlbWVudHMoKSB7IHJldHVybiBTb3VyY2VFbGVtZW50c1Jl
c3VsdDsgfQogICAgIEV4cHJlc3Npb25UeXBlIG1ha2VGdW5jdGlvbkNhbGxOb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25UeXBlLCBib29sLCBpbnQsIGludCwgaW50LCBpbnQs
IHNpemVfdCwgYm9vbCkgeyByZXR1cm4gQ2FsbEV4cHI7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5oCShyZXZpc2lvbiAy
NDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiB9OwogCiBzdHJ1Y3Qg
VmFyaWFibGVFbnZpcm9ubWVudEVudHJ5SGFzaFRyYWl0cyA6IEhhc2hUcmFpdHM8VmFyaWFibGVF
bnZpcm9ubWVudEVudHJ5PiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlv
biA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0g
ZmFsc2U7CiB9OwogCiBjbGFzcyBWYXJpYWJsZUVudmlyb25tZW50IHsKQEAgLTE1OCw3ICsxNTgs
NyBAQCBzdHJ1Y3QgQ29tcGFjdFZhcmlhYmxlTWFwS2V5IHsKIAogICAgIHN0YXRpYyB1bnNpZ25l
ZCBoYXNoKGNvbnN0IENvbXBhY3RWYXJpYWJsZU1hcEtleSYga2V5KSB7IHJldHVybiBrZXkubV9l
bnZpcm9ubWVudC0+aGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgQ29tcGFj
dFZhcmlhYmxlTWFwS2V5JiBhLCBjb25zdCBDb21wYWN0VmFyaWFibGVNYXBLZXkmIGIpIHsgcmV0
dXJuICphLm1fZW52aXJvbm1lbnQgPT0gKmIubV9lbnZpcm9ubWVudDsgfQotICAgIHN0YXRpYyBj
b25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7
CiAgICAgc3RhdGljIHZvaWQgbWFrZURlbGV0ZWRWYWx1ZShDb21wYWN0VmFyaWFibGVNYXBLZXkm
IGtleSkKICAgICB7CiAgICAgICAgIGtleS5tX2Vudmlyb25tZW50ID0gcmVpbnRlcnByZXRfY2Fz
dDxDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVudCo+KDEpOwpAQCAtMTkzLDEwICsxOTMsMTAgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpDb21wYQogfTsKIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkNvbXBhY3RWYXJpYWJsZU1hcEtleT4gOiBHZW5lcmlj
SGFzaFRyYWl0czxKU0M6OkNvbXBhY3RWYXJpYWJsZU1hcEtleT4gewotICAgIHN0YXRpYyBjb25z
dCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1ZTsKICAgICBzdGF0aWMgSlNDOjpDb21wYWN0VmFyaWFi
bGVNYXBLZXkgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIEpTQzo6Q29tcGFjdFZhcmlhYmxlTWFwS2V5
KCk7IH0KIAotICAgIHN0YXRpYyBjb25zdCBib29sIGhhc0lzRW1wdHlWYWx1ZUZ1bmN0aW9uID0g
dHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24g
PSB0cnVlOwogICAgIHN0YXRpYyBib29sIGlzRW1wdHlWYWx1ZShKU0M6OkNvbXBhY3RWYXJpYWJs
ZU1hcEtleSBrZXkpIHsgcmV0dXJuIGtleS5pc0hhc2hUYWJsZUVtcHR5VmFsdWUoKTsgfQogCiAg
ICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKEpTQzo6Q29tcGFjdFZhcmlhYmxl
TWFwS2V5JiBrZXkpIHsgSlNDOjpDb21wYWN0VmFyaWFibGVNYXBLZXk6Om1ha2VEZWxldGVkVmFs
dWUoa2V5KTsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
T3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyT3JpZ2luLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTk3LDcgKzk3LDcgQEAg
aW5saW5lIGJvb2wgT3JpZ2luOjppc0hhc2hUYWJsZURlbGV0ZWRWYQogc3RydWN0IE9yaWdpbkhh
c2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IE9yaWdpbiYga2V5KSB7IHJldHVy
biBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgT3JpZ2luJiBhLCBj
b25zdCBPcmlnaW4mIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29s
IHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OlByb2ZpbGVyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZXJPcmlnaW5TdGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmgJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNr
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
Mi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNzksNyArNzksNyBAQCBpbmxpbmUgYm9vbCBPcmlnaW5TdGFjazo6
aXNIYXNoVGFibGVEZWxlCiBzdHJ1Y3QgT3JpZ2luU3RhY2tIYXNoIHsKICAgICBzdGF0aWMgdW5z
aWduZWQgaGFzaChjb25zdCBPcmlnaW5TdGFjayYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9
CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgT3JpZ2luU3RhY2smIGEsIGNvbnN0IE9yaWdp
blN0YWNrJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZl
VG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpQcm9maWxlcgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL1Byb2ZpbGVyVUlELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVyVUlELmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclVJRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTkxLDcgKzkxLDcg
QEAgcHJpdmF0ZToKIHN0cnVjdCBVSURIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChj
b25zdCBVSUQmIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQogICAgIHN0YXRpYyBib29sIGVx
dWFsKGNvbnN0IFVJRCYgYSwgY29uc3QgVUlEJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBz
dGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0g
dHJ1ZTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpQcm9maWxlcgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWJzdHJhY3RNb2R1bGVSZWNvcmQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fic3RyYWN0TW9kdWxlUmVjb3Jk
LmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QWJzdHJhY3RNb2R1bGVSZWNvcmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBA
CiAKIG5hbWVzcGFjZSBKU0MgewogbmFtZXNwYWNlIEFic3RyYWN0TW9kdWxlUmVjb3JkSW50ZXJu
YWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhw
ciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0gLy8gbmFtZXNwYWNlIEFic3RyYWN0TW9kdWxlUmVj
b3JkSW50ZXJuYWwKIAogY29uc3QgQ2xhc3NJbmZvIEFic3RyYWN0TW9kdWxlUmVjb3JkOjpzX2lu
Zm8gPSB7ICJBYnN0cmFjdE1vZHVsZVJlY29yZCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoQWJzdHJhY3RNb2R1bGVSZWNvcmQpIH07CkBAIC0x
NzMsNyArMTczLDcgQEAgc3RydWN0IEFic3RyYWN0TW9kdWxlUmVjb3JkOjpSZXNvbHZlUXVlcgog
ICAgIHN0cnVjdCBIYXNoIHsKICAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgUmVz
b2x2ZVF1ZXJ5Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFJlc29sdmVRdWVy
eSYsIGNvbnN0IFJlc29sdmVRdWVyeSYpOwotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZl
VG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiAgICAgfTsKICAg
ICB1c2luZyBIYXNoVHJhaXRzID0gV1RGOjpDdXN0b21IYXNoVHJhaXRzPFJlc29sdmVRdWVyeT47
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyTmV1dGVy
aW5nV2F0Y2hwb2ludFNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5QnVmZmVyTmV1dGVyaW5nV2F0Y2hwb2ludFNldC5oCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUJ1ZmZlck5ldXRlcmlu
Z1dhdGNocG9pbnRTZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMywxMyArMzMsMTMgQEAgbmFtZXNwYWNl
IEpTQyB7CiBjbGFzcyBBcnJheUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9pbnRTZXQgZmluYWwgOiBw
dWJsaWMgSlNDZWxsIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFs
OwogCiAgICAgREVDTEFSRV9JTkZPOwogICAgIAogICAgIHN0YXRpYyBBcnJheUJ1ZmZlck5ldXRl
cmluZ1dhdGNocG9pbnRTZXQqIGNyZWF0ZShWTSYpOwogCi0gICAgc3RhdGljIGNvbnN0IGJvb2wg
bmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRz
RGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAg
ICAgCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJik7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNv
bnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHly
aWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDA3LTIwMDgsIDIwMTEsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3Mg
R2V0dGVyU2V0dGVyOwogY2xhc3MgQXJyYXlDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRl
cm5hbEZ1bmN0aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFz
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBBcnJheUNvbnN0cnVjdG9yKiBjcmVhdGUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgQXJyYXlQcm90b3R5cGUqIGFycmF5UHJvdG90eXBlLCBHZXR0ZXJTZXR0ZXIqIHNwZWNpZXNT
eW1ib2wpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlD
b252ZW50aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5Q29udmVudGlvbnMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlDb252ZW50aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3
ICs5MSw3IEBAIHN0YXRpY19hc3NlcnQoTUFYX1NUT1JBR0VfVkVDVE9SX0lOREVYIDwKIC8vIEZv
ciBhbGwgYXJyYXkgaW5kaWNlcyB1bmRlciBNSU5fU1BBUlNFX0FSUkFZX0lOREVYLCB3ZSBhbHdh
eXMgdXNlIGEgdmVjdG9yLgogLy8gV2hlbiBpbmRpY2VzIGdyZWF0ZXIgdGhhbiBNSU5fU1BBUlNF
X0FSUkFZX0lOREVYIGFyZSBpbnZvbHZlZCwgd2UgdXNlIGEgdmVjdG9yCiAvLyBhcyBsb25nIGFz
IGl0IGlzIDEvOCBmdWxsLiBJZiBtb3JlIHNwYXJzZSB0aGFuIHRoYXQsIHdlIHVzZSBhIG1hcC4K
LXN0YXRpYyBjb25zdCB1bnNpZ25lZCBtaW5EZW5zaXR5TXVsdGlwbGllciA9IDg7CitzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIG1pbkRlbnNpdHlNdWx0aXBsaWVyID0gODsKIAogaW5saW5lIGJv
b2wgaXNEZW5zZUVub3VnaEZvclZlY3Rvcih1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIG51bVZh
bHVlcykKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0
b3JQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxl
LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBBcnJheUl0ZXJhdG9y
UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAg
IHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVy
dHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3Rh
dGljIEFycmF5SXRlcmF0b3JQcm90b3R5cGUqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAJKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90
eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHN0YXRpYyBBTFdBWVNf
SU5MSU5FIGJvb2wgcHV0TGVuZ3RoKEV4ZWMKIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0
TGVuZ3RoKEV4ZWNTdGF0ZSogZXhlYywgVk0mIHZtLCBKU09iamVjdCogb2JqLCB1bnNpZ25lZCB2
YWx1ZSkKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
c3RhdGljIGNvbnN0IGJvb2wgdGhyb3dFeGNlcHRpb24gPSB0cnVlOworICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCB0aHJvd0V4Y2VwdGlvbiA9IHRydWU7CiAgICAgaWYgKGlzSlNBcnJheShvYmop
KSB7CiAgICAgICAgIGpzQ2FzdDxKU0FycmF5Kj4ob2JqKS0+c2V0TGVuZ3RoKGV4ZWMsIHZhbHVl
LCB0aHJvd0V4Y2VwdGlvbik7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZv
aWQoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Zyb21TeW5j
SXRlcmF0b3JQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGcm9tU3luY0l0ZXJhdG9y
UHJvdG90eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE3IE9sZWtzYW5kciBTa2FjaGtvdiA8Z3NrYWNoa292QGdtYWlsLmNvbT4uCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBPbGVrc2FuZHIgU2thY2hrb3YgPGdza2FjaGtvdkBn
bWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBl
IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHVzaW5nIEJh
c2UgPSBKU05vbkZpbmFsT2JqZWN0OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgREVDTEFSRV9JTkZP
OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvckZ1
bmN0aW9uUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9u
UHJvdG90eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE3IE9sZWtzYW5kciBTa2FjaGtvdiA8Z3NrYWNoa292QGdtYWlsLmNvbT4uCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBPbGVrc2FuZHIgU2thY2hrb3YgPGdza2FjaGtvdkBn
bWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBC
YXNlID0gSlNOb25GaW5hbE9iamVjdDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIERFQ0xBUkVfSU5G
TzsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0b3JQ
cm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
c3luY0dlbmVyYXRvclByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvclByb3RvdHlwZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNyBPbGVrc2FuZHIg
U2thY2hrb3YgPGdza2FjaGtvdkBnbWFpbC5jb20+LgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzQsNyArMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEFzeW5jR2VuZXJh
dG9yUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgog
ICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0OwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJv
cGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAg
c3RhdGljIEFzeW5jR2VuZXJhdG9yUHJvdG90eXBlKiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FzeW5jSXRlcmF0b3JQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0l0ZXJhdG9yUHJvdG90eXBlLmgJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jSXRl
cmF0b3JQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgT2xla3NhbmRyIFNrYWNoa292IDxnc2thY2hrb3ZAZ21haWwuY29t
Pi4KKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDcgKzMzLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiBjbGFzcyBBc3luY0l0ZXJhdG9yUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Tm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2Jq
ZWN0OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHN0YXRpYyBBc3luY0l0ZXJhdG9yUHJv
dG90eXBlKiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BdG9taWNzT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BdG9taWNzT2JqZWN0LmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE5NSw3ICsxOTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBhdG9taWNPcGVyYXRpb25XaXRoQXJn
cyhFCiB9CiAKIHN0cnVjdCBBZGRGdW5jIHsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVt
RXh0cmFBcmdzID0gMTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUV4dHJhQXJn
cyA9IDE7CiAgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKU1ZhbHVlIG9wZXJh
dG9yKCkoVCogcHRyLCBjb25zdCBkb3VibGUqIGFyZ3MpIGNvbnN0CkBAIC0yMDUsNyArMjA1LDcg
QEAgc3RydWN0IEFkZEZ1bmMgewogfTsKIAogc3RydWN0IEFuZEZ1bmMgewotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBudW1FeHRyYUFyZ3MgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgbnVtRXh0cmFBcmdzID0gMTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgog
ICAgIEpTVmFsdWUgb3BlcmF0b3IoKShUKiBwdHIsIGNvbnN0IGRvdWJsZSogYXJncykgY29uc3QK
QEAgLTIxNSw3ICsyMTUsNyBAQCBzdHJ1Y3QgQW5kRnVuYyB7CiB9OwogCiBzdHJ1Y3QgQ29tcGFy
ZUV4Y2hhbmdlRnVuYyB7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUV4dHJhQXJncyA9
IDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1FeHRyYUFyZ3MgPSAyOwogICAg
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgSlNWYWx1ZSBvcGVyYXRvcigpKFQqIHB0
ciwgY29uc3QgZG91YmxlKiBhcmdzKSBjb25zdApAQCAtMjI3LDcgKzIyNyw3IEBAIHN0cnVjdCBD
b21wYXJlRXhjaGFuZ2VGdW5jIHsKIH07CiAKIHN0cnVjdCBFeGNoYW5nZUZ1bmMgewotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBudW1FeHRyYUFyZ3MgPSAxOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbnVtRXh0cmFBcmdzID0gMTsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgogICAgIEpTVmFsdWUgb3BlcmF0b3IoKShUKiBwdHIsIGNvbnN0IGRvdWJsZSogYXJncykg
Y29uc3QKQEAgLTIzNyw3ICsyMzcsNyBAQCBzdHJ1Y3QgRXhjaGFuZ2VGdW5jIHsKIH07CiAKIHN0
cnVjdCBMb2FkRnVuYyB7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUV4dHJhQXJncyA9
IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1FeHRyYUFyZ3MgPSAwOwogICAg
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgSlNWYWx1ZSBvcGVyYXRvcigpKFQqIHB0
ciwgY29uc3QgZG91YmxlKikgY29uc3QKQEAgLTI0Nyw3ICsyNDcsNyBAQCBzdHJ1Y3QgTG9hZEZ1
bmMgewogfTsKIAogc3RydWN0IE9yRnVuYyB7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51
bUV4dHJhQXJncyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1FeHRyYUFy
Z3MgPSAxOwogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgSlNWYWx1ZSBvcGVy
YXRvcigpKFQqIHB0ciwgY29uc3QgZG91YmxlKiBhcmdzKSBjb25zdApAQCAtMjU3LDcgKzI1Nyw3
IEBAIHN0cnVjdCBPckZ1bmMgewogfTsKIAogc3RydWN0IFN0b3JlRnVuYyB7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIG51bUV4dHJhQXJncyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBudW1FeHRyYUFyZ3MgPSAxOwogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
CiAgICAgSlNWYWx1ZSBvcGVyYXRvcigpKFQqIHB0ciwgY29uc3QgZG91YmxlKiBhcmdzKSBjb25z
dApAQCAtMjcwLDcgKzI3MCw3IEBAIHN0cnVjdCBTdG9yZUZ1bmMgewogfTsKIAogc3RydWN0IFN1
YkZ1bmMgewotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1FeHRyYUFyZ3MgPSAxOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtRXh0cmFBcmdzID0gMTsKICAgICAKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIEpTVmFsdWUgb3BlcmF0b3IoKShUKiBwdHIsIGNvbnN0
IGRvdWJsZSogYXJncykgY29uc3QKQEAgLTI4MCw3ICsyODAsNyBAQCBzdHJ1Y3QgU3ViRnVuYyB7
CiB9OwogCiBzdHJ1Y3QgWG9yRnVuYyB7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG51bUV4
dHJhQXJncyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1FeHRyYUFyZ3Mg
PSAxOwogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgSlNWYWx1ZSBvcGVyYXRv
cigpKFQqIHB0ciwgY29uc3QgZG91YmxlKiBhcmdzKSBjb25zdApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CaWdJbnRDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAy
NDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CaWdJbnRDb25zdHJ1Y3Rv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxNyBDYWlvIExpbWEgPHRpY2Fpb2xpbWFAZ21haWwuY29tPgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
Ny0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBHZXR0ZXJTZXR0ZXI7CiBjbGFz
cyBCaWdJbnRDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIHB1
YmxpYzoKICAgICB1c2luZyBCYXNlID0gSW50ZXJuYWxGdW5jdGlvbjsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0
YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
IAogICAgIHN0YXRpYyBCaWdJbnRDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEJpZ0ludFByb3RvdHlwZSogYmlnSW50UHJvdG90eXBlLCBHZXR0ZXJTZXR0
ZXIqKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludFBy
b3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jp
Z0ludFByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9CaWdJbnRQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQ2FpbyBMaW1hIDx0aWNhaW9saW1hQGdtYWls
LmNvbT4uCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw3ICszMyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQmlnSW50UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Tm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2Jq
ZWN0OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNT
dGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEJpZ0ludFByb3RvdHlwZSogY3JlYXRl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblBy
b3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5Qcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEs
NiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRl
bkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjcsNyArMjcsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEJvb2xlYW5Qcm90b3R5cGUgZmluYWwgOiBwdWJsaWMg
Qm9vbGVhbk9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBCb29sZWFuT2JqZWN0IEJhc2U7
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRp
Y1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgQm9vbGVhblByb3RvdHlwZSogY3JlYXRlKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1l
bnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVk
QXJndW1lbnRzLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Nsb25lZEFyZ3VtZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsNyArNDAsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIENsb25lZEFyZ3VtZW50cyBmaW5hbCA6IHB1YmxpYyBK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3Qg
QmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dl
dFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90
IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKICAgICAKIHByaXZhdGU6CiAgICAgQ2xvbmVk
QXJndW1lbnRzKFZNJiwgU3RydWN0dXJlKiwgQnV0dGVyZmx5Kik7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU5LDcgKzU5LDcgQEAgY2xhc3MgVk07CiBjbGFzcyBWYXJpYWJsZUVudmlyb25tZW50OwogCiBu
YW1lc3BhY2UgQ29kZUNhY2hlSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9
IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0gLy8gbmFt
ZXNwYWNlIENvZGVDYWNoZUludGVybmFsCiAKIHN0cnVjdCBTb3VyY2VDb2RlVmFsdWUgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnRyb2xGbG93UHJv
ZmlsZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29udHJvbEZsb3dQcm9maWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTQgU2FhbSBCYXJhdGkuIDxzYWFtYmFyYXRpMUBnbWFp
bC5jb20+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC02MCw3ICs2MCw3IEBAIHN0cnVjdCBCYXNpY0Js
b2NrS2V5IHsKIHN0cnVjdCBCYXNpY0Jsb2NrS2V5SGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVk
IGhhc2goY29uc3QgQmFzaWNCbG9ja0tleSYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAg
ICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgQmFzaWNCbG9ja0tleSYgYSwgY29uc3QgQmFzaWNC
bG9ja0tleSYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2Fm
ZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKQEAgLTc0LDcgKzc0LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhh
c2g8SlNDOjpCYXNpYwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsK
IHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpCYXNpY0Jsb2NrS2V5PiA6IFNpbXBs
ZUNsYXNzSGFzaFRyYWl0czxKU0M6OkJhc2ljQmxvY2tLZXk+IHsKLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0
dGVyLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0N1c3RvbUdldHRlclNldHRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIG5h
bWVzcGFjZSBKU0MgewogY2xhc3MgQ3VzdG9tR2V0dGVyU2V0dGVyIDogcHVibGljIEpTQ2VsbCB7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlz
SW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAogICAgIHR5cGVk
ZWYgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMgQ3VzdG9tR2V0dGVyOwogICAgIHR5cGVkZWYg
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmMgQ3VzdG9tU2V0dGVyOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMp
IDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAo
QykgMjAwOCwgMjAxMSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAg
Q29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzAsNyArMzAsNyBAQCBjbGFzcyBHZXR0ZXJTZXR0ZXI7
CiBjbGFzcyBEYXRlQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBI
YXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFi
bGU7CiAKICAgICBzdGF0aWMgRGF0ZUNvbnN0cnVjdG9yKiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgRGF0ZVByb3RvdHlwZSogZGF0ZVByb3RvdHlwZSwgR2V0dGVyU2V0dGVy
KikKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90
eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVBy
b3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlUHJvdG90eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgog
ICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcp
Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0zMiw3ICszMiw3IEBAIHByaXZhdGU6CiAKIHB1
YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0
YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
IAogICAgIHN0YXRpYyBEYXRlUHJvdG90eXBlKiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZpbmVQcm9wZXJ0eUF0dHJpYnV0ZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EZWZpbmVQcm9wZXJ0eUF0
dHJpYnV0ZXMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGVmaW5lUHJvcGVydHlBdHRyaWJ1dGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsMTIgKzM2
LDEyIEBAIHB1YmxpYzoKICAgICBzdGF0aWNfYXNzZXJ0KFRydWVUcmlTdGF0ZSA9PSAxLCAiVHJ1
ZVRyaVN0YXRlIGlzIDEuIik7CiAgICAgc3RhdGljX2Fzc2VydChNaXhlZFRyaVN0YXRlID09IDIs
ICJNaXhlZFRyaVN0YXRlIGlzIDIuIik7CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQ29u
ZmlndXJhYmxlU2hpZnQgPSAwOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBFbnVtZXJhYmxl
U2hpZnQgPSAyOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBXcml0YWJsZVNoaWZ0ID0gNDsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgVmFsdWVTaGlmdCA9IDY7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIEdldFNoaWZ0ID0gNzsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU2V0
U2hpZnQgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgQ29uZmlndXJhYmxlU2hp
ZnQgPSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgRW51bWVyYWJsZVNoaWZ0ID0g
MjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFdyaXRhYmxlU2hpZnQgPSA0OworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgVmFsdWVTaGlmdCA9IDY7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBHZXRTaGlmdCA9IDc7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTZXRTaGlmdCA9IDg7CiAKICAgICBEZWZpbmVQcm9wZXJ0eUF0dHJpYnV0ZXMoKQogICAg
ICAgICA6IG1fYXR0cmlidXRlcygKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChw
b3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTI5LDcgKzI5
LDcgQEAgY2xhc3MgT2JqZWN0UHJvdG90eXBlOwogY2xhc3MgRXJyb3JQcm90b3R5cGUgOiBwdWJs
aWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2Jq
ZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgRXJyb3JQcm90b3R5cGUqIGNy
ZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0V2YWxFeGVjdXRhYmxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXZhbEV4ZWN1dGFibGUuaAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXZhbEV4ZWN1dGFibGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDktMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgRXZhbEV4ZWN1dGFibGUgOiBw
dWJsaWMgR2xvYmFsRXhlYwogICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7
CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEdsb2JhbEV4ZWN1dGFibGU7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBT
dHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAK
ICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogICAgIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNCw4ICszNCw4IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRXhjZXB0aW9uIGZpbmFsIDog
cHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTQ2VsbDsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0
cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAKICAgICBlbnVt
IFN0YWNrQ2FwdHVyZUFjdGlvbiB7CiAgICAgICAgIENhcHR1cmVTdGFjaywKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRp
b25IZWxwZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM0LDcgKzIzNCw3IEBAIHN0YXRpYyBT
dHJpbmcgaW52YWxpZFBhcmFtZXRlckluU291cmNlQXAKICAgICBpZiAoc291cmNlVGV4dC5maW5k
KCJpbiIpICE9IGluSW5kZXgpCiAgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKG9yaWdpbmFsTWVz
c2FnZSwgIiAoZXZhbHVhdGluZyAnIiwgc291cmNlVGV4dCwgIicpIik7CiAKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgaW5MZW5ndGggPSAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgaW5MZW5ndGggPSAyOwogICAgIFN0cmluZyByaWdodEhhbmRTaWRlID0gc291cmNlVGV4dC5z
dWJzdHJpbmcoaW5JbmRleCArIGluTGVuZ3RoKS5zaW1wbGlmeVdoaXRlU3BhY2UoKTsKICAgICBy
ZXR1cm4gbWFrZVN0cmluZyhyaWdodEhhbmRTaWRlLCAiIGlzIG5vdCBhbiBPYmplY3QuIChldmFs
dWF0aW5nICciLCBzb3VyY2VUZXh0LCAiJykiKTsKIH0KQEAgLTI1MCw3ICsyNTAsNyBAQCBpbmxp
bmUgU3RyaW5nIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mCiAgICAgaWYgKHNvdXJjZVRleHQu
ZmluZCgiaW5zdGFuY2VvZiIpICE9IGluc3RhbmNlb2ZJbmRleCkKICAgICAgICAgcmV0dXJuIG1h
a2VTdHJpbmcob3JpZ2luYWxNZXNzYWdlLCAiIChldmFsdWF0aW5nICciLCBzb3VyY2VUZXh0LCAi
JykiKTsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnN0YW5jZW9mTGVuZ3RoID0gMTA7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBpbnN0YW5jZW9mTGVuZ3RoID0gMTA7CiAg
ICAgU3RyaW5nIHJpZ2h0SGFuZFNpZGUgPSBzb3VyY2VUZXh0LnN1YnN0cmluZyhpbnN0YW5jZW9m
SW5kZXggKyBpbnN0YW5jZW9mTGVuZ3RoKS5zaW1wbGlmeVdoaXRlU3BhY2UoKTsKICAgICByZXR1
cm4gbWFrZVN0cmluZyhyaWdodEhhbmRTaWRlLCBjb250ZW50LCAiLiAoZXZhbHVhdGluZyAnIiwg
c291cmNlVGV4dCwgIicpIik7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGNlcHRpb25IZWxwZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTY0LDcgKzY0LDcgQEAgSlNfRVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd1Rlcm1p
bgogY2xhc3MgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9yIGZpbmFsIDogcHVibGljIEpTTm9uRmlu
YWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0lt
bW9ydGFsOwogCiAgICAgc3RhdGljIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvciogY3JlYXRlKFZN
JiB2bSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRh
YmxlQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4
ZWN1dGFibGVCYXNlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4ZWN1dGFibGVCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03Miw5ICs3Miw5
IEBAIHByb3RlY3RlZDoKIAogcHVibGljOgogICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7Ci0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlv
biA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0
cnVlOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAgICAgCiAgICAgLy8gRm9y
Y2Ugc3ViY2xhc3NlcyB0byBvdmVycmlkZSB0aGlzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmgJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBGdW5jdGlvbkV4ZWN1dGFi
bGUgZmluYWwgOiBwdWJsaWMgCiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3Rv
cjsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFNjcmlwdEV4ZWN1dGFibGUgQmFzZTsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsK
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2Vzcz4KICAgICBz
dGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmgJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4LDExICs0OCwxMSBAQCBjbGFzcyBGdW5jdGlvblJhcmVE
YXRhIGZpbmFsIDogcHVibGljIEpTCiAgICAgCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0NlbGwg
QmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0
dXJlSXNJbW1vcnRhbDsKIAogICAgIHN0YXRpYyBGdW5jdGlvblJhcmVEYXRhKiBjcmVhdGUoVk0m
LCBKU0Z1bmN0aW9uKik7CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9u
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRy
dWU7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAogICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90
b3R5cGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJhdG9yUHJv
dG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2Vu
ZXJhdG9yUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0dlbmVyYXRvclByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+LgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyAr
MzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEdlbmVyYXRvclByb3RvdHlwZSBmaW5hbCA6
IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmlu
YWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBHZW5lcmF0b3JQcm90
b3R5cGUqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY0Fy
Z3VtZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dl
bmVyaWNBcmd1bWVudHMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvR2VuZXJpY0FyZ3VtZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsNyAr
MzYsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgogY2xhc3MgR2VuZXJpY0FyZ3VtZW50cyA6
IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmlu
YWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IElu
dGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8g
fCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldo
ZW5MZW5ndGhJc05vdFplcm8gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogCiBwcm90ZWN0
ZWQ6CiAgICAgR2VuZXJpY0FyZ3VtZW50cyhWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY09mZnNldC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNPZmZzZXQuaAko
cmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJp
Y09mZnNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcgKzM1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4KIGNsYXNzIEdlbmVyaWNPZmZzZXQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnZhbGlkT2Zmc2V0ID0gVUlOVF9N
QVg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBpbnZhbGlkT2Zmc2V0ID0gVUlOVF9N
QVg7CiAgICAgCiAgICAgR2VuZXJpY09mZnNldCgpCiAgICAgICAgIDogbV9vZmZzZXQoaW52YWxp
ZE9mZnNldCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldFB1dEluZm8u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXRQdXRJbmZv
LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dl
dFB1dEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMjAzLDExICsyMDMsMTEgQEAgY2xhc3MgR2V0
UHV0SW5mbyB7CiBwdWJsaWM6CiAgICAgLy8gR2l2ZSBlYWNoIGZpZWxkIDEwIGJpdHMgZm9yIHNp
bXBsaWNpdHkuCiAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoT3BlcmFuZCkgKiA4ID4gMzAsICJO
b3QgZW5vdWdoIGJpdHMgZm9yIEdldFB1dEluZm8iKTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgbW9kZVNoaWZ0ID0gMjA7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluaXRpYWxpemF0
aW9uU2hpZnQgPSAxMDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdHlwZUJpdHMgPSAoMSA8
PCBpbml0aWFsaXphdGlvblNoaWZ0KSAtIDE7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGlu
aXRpYWxpemF0aW9uQml0cyA9ICgoMSA8PCBtb2RlU2hpZnQpIC0gMSkgJiB+dHlwZUJpdHM7Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1vZGVCaXRzID0gKCgxIDw8IDMwKSAtIDEpICYgfmlu
aXRpYWxpemF0aW9uQml0cyAmIH50eXBlQml0czsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIG1vZGVTaGlmdCA9IDIwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaW5pdGlh
bGl6YXRpb25TaGlmdCA9IDEwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgdHlwZUJp
dHMgPSAoMSA8PCBpbml0aWFsaXphdGlvblNoaWZ0KSAtIDE7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBpbml0aWFsaXphdGlvbkJpdHMgPSAoKDEgPDwgbW9kZVNoaWZ0KSAtIDEpICYg
fnR5cGVCaXRzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbW9kZUJpdHMgPSAoKDEg
PDwgMzApIC0gMSkgJiB+aW5pdGlhbGl6YXRpb25CaXRzICYgfnR5cGVCaXRzOwogICAgIHN0YXRp
Y19hc3NlcnQoKG1vZGVCaXRzICYgaW5pdGlhbGl6YXRpb25CaXRzICYgdHlwZUJpdHMpID09IDB4
MCwgIlRoZXJlIHNob3VsZCBiZSBubyBpbnRlcnNlY3Rpb24gYmV0d2VlbiBSZXNvbHZlTW9kZSBS
ZXNvbHZlVHlwZSBhbmQgSW5pdGlhbGl6YXRpb25Nb2RlIik7CiAKICAgICBHZXRQdXRJbmZvKCkg
PSBkZWZhdWx0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0
dGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVy
U2V0dGVyLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0dldHRlclNldHRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHByaXZh
dGU6CiAKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
U3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgc3RhdGljIEdldHRlclNldHRlciog
Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGdl
dHRlciwgSlNPYmplY3QqIHNldHRlcikKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9HbG9iYWxFeGVjdXRhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvR2xvYmFsRXhlY3V0YWJsZS5oCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HbG9iYWxFeGVjdXRhYmxlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBHbG9iYWxF
eGVjdXRhYmxlIDogcHVibGljIFNjcmlwdEV4ZWN1dGFibGUgewogcHVibGljOgogICAgIHVzaW5n
IEJhc2UgPSBTY3JpcHRFeGVjdXRhYmxlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgREVDTEFSRV9JTkZPOwog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5oCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5MCw3ICsyOTAsNyBAQCBzdHJ1Y3QgSWRlbnRpZmllclJl
cEhhc2ggOiBQdHJIYXNoPFJlZlB0CiAKIHN0cnVjdCBJZGVudGlmaWVyTWFwSW5kZXhIYXNoVHJh
aXRzIDogSGFzaFRyYWl0czxpbnQ+IHsKICAgICBzdGF0aWMgaW50IGVtcHR5VmFsdWUoKSB7IHJl
dHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpOyB9Ci0gICAgc3RhdGljIGNvbnN0
IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiB9OwogCiB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRy
PFVuaXF1ZWRTdHJpbmdJbXBsPiwgSWRlbnRpZmllclJlcEhhc2g+IElkZW50aWZpZXJTZXQ7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBwcml2YXRlOgogCiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0
eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0
aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0KiBjcmVhdGUoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5o
CShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRl
cm5hbEZ1bmN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgSW50
ZXJuYWxGdW5jdGlvbiA6IHB1YmxpYyBKU0Rlc3RydQogICAgIGZyaWVuZCBjbGFzcyBMTEludE9m
ZnNldHNFeHRyYWN0b3I7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Rlc3RydWN0aWJsZU9iamVj
dCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSW1wbGVtZW50c0RlZmF1
bHRIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc0dldENhbGxEYXRhOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEltcGxl
bWVudHNIYXNJbnN0YW5jZSB8IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgfCBPdmVycmlk
ZXNHZXRDYWxsRGF0YTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFj
ZUFjY2Vzcz4KICAgICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxh
dG9yQ29uc3RydWN0b3IuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQW5keSBWYW5XYWdvbmVyIChh
bmR5QHZhbndhZ29uZXIuZmFtaWx5KQotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzksNyArMzksNyBAQCBjbGFzcyBJbnRsQ29sbGF0b3JQcm90b3R5cGU7CiBjbGFzcyBJbnRs
Q29sbGF0b3JDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIHB1
YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0
YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
IAogICAgIHN0YXRpYyBJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiwgU3RydWN0
dXJlKiwgSW50bENvbGxhdG9yUHJvdG90eXBlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlw
ZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsQ29sbGF0b3JQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQW5keSBWYW5XYWdvbmVyIChhbmR5QHZhbndhZ29uZXIu
ZmFtaWx5KQorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyArMzUsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKIGNsYXNzIEludGxDb2xsYXRvclByb3RvdHlwZSBmaW5hbCA6IHB1Ymxp
YyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmpl
Y3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBJbnRsQ29sbGF0b3JQcm90b3R5
cGUqIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVl
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1h
dENvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuaAkocmV2aXNpb24gMjQ5OTc2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQW5keSBWYW5XYWdvbmVyIChhbmR5QHZhbndhZ29uZXIuZmFtaWx5KQotICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNyArMzksNyBAQCBjbGFzcyBJbnRsRGF0ZVRp
bWVGb3JtYXRQcm90b3R5cGU7CiBjbGFzcyBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvciBm
aW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIElu
dGVybmFsRnVuY3Rpb24gQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBJbnRsRGF0
ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgSW50bERhdGVU
aW1lRm9ybWF0UHJvdG90eXBlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3Rv
dHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQW5keSBWYW5XYWdvbmVyIChhbmR5QHZh
bndhZ29uZXIuZmFtaWx5KQorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyAr
MzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVm
IEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBJbnRs
RGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUqIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNH
bG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5oCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVy
Rm9ybWF0Q29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQW5keSBWYW5XYWdvbmVyIChhbmR5QHZhbndhZ29uZXIuZmFt
aWx5KQotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNyArMzksNyBAQCBj
bGFzcyBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlOwogY2xhc3MgSW50bE51bWJlckZvcm1hdENv
bnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVibGljOgogICAg
IHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVy
dHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3Rh
dGljIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwg
SW50bE51bWJlckZvcm1hdFByb3RvdHlwZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdFBy
b3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IEFuZHkgVmFuV2Fnb25lciAoYW5keUB2
YW53YWdvbmVyLmZhbWlseSkKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcg
KzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBl
IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYg
SlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEludGxO
dW1iZXJGb3JtYXRQcm90b3R5cGUqIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9i
YWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsT2JqZWN0LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQW5keSBWYW5XYWdvbmVyIChhbmR5QHZhbndhZ29uZXIu
ZmFtaWx5KQorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDQsNyArNDUsNyBAQCBj
bGFzcyBJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGU7CiBjbGFzcyBJbnRsT2JqZWN0IGZpbmFsIDog
cHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5h
bE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIEludGxPYmplY3QqIGNy
ZWF0ZShWTSYsIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlc0NvbnN0cnVj
dG9yLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxQbHVyYWxSdWxlc0NvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE4IEFuZHkgVmFuV2Fnb25lciAoYW5keUB2YW53
YWdvbmVyLmZhbWlseSkKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDcgKzM5
LDcgQEAgY2xhc3MgSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlOwogY2xhc3MgSW50bFBsdXJhbFJ1
bGVzQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQ
cm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAg
ICBzdGF0aWMgSW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3IqIGNyZWF0ZShWTSYsIFN0cnVjdHVy
ZSosIEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXNQcm90b3R5cGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXNQ
cm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE4IEFuZHkgVmFuV2Fnb25lciAoYW5keUB2
YW53YWdvbmVyLmZhbWlseSkKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcg
KzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGUg
ZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBK
U05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgSW50bFBs
dXJhbFJ1bGVzUHJvdG90eXBlKiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFs
T2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
dGVyYXRvclByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0l0ZXJhdG9yUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0l0ZXJhdG9yUHJvdG90eXBlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zMiw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSXRlcmF0b3JQcm90b3R5cGUg
ZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBK
U05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgc3RhdGlj
IEl0ZXJhdG9yUHJvdG90eXBlKiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAo
cG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMy0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDMgUGV0ZXIgS2Vs
bHkgKHBta0Bwb3N0LmNvbSkKICAqICBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5
YWtvdiAoYXBAbnlwb3AuY29tKQogICoKQEAgLTgxLDcgKzgxLDcgQEAgSlNBcnJheSogSlNBcnJh
eTo6dHJ5Q3JlYXRlVW5pbml0aWFsaXplZAogICAgICAgICBBU1NFUlQoCiAgICAgICAgICAgICBp
bmRleGluZ1R5cGUgPT0gQXJyYXlXaXRoU2xvd1B1dEFycmF5U3RvcmFnZQogICAgICAgICAgICAg
fHwgaW5kZXhpbmdUeXBlID09IEFycmF5V2l0aEFycmF5U3RvcmFnZSk7Ci0gICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBpbmRleEJpYXMgPSAwOworICAgICAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIGluZGV4QmlhcyA9IDA7CiAgICAgICAgIHVuc2lnbmVkIHZlY3Rvckxlbmd0aCA9
IEFycmF5U3RvcmFnZTo6b3B0aW1hbFZlY3Rvckxlbmd0aChpbmRleEJpYXMsIHN0cnVjdHVyZSwg
aW5pdGlhbExlbmd0aCk7CiAgICAgICAgIHZvaWQqIHRlbXAgPSB2bS5qc1ZhbHVlR2lnYWNhZ2VB
dXhpbGlhcnlTcGFjZS5hbGxvY2F0ZU5vblZpcnR1YWwoCiAgICAgICAgICAgICB2bSwKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgJKHJldmlzaW9uIDI0OTk3NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAkod29ya2luZyBjb3B5
KQpAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBKU0FycmF5IDogcHVibGljIEpTTm9uRmluYWxPYmpl
Y3QgCiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFt
ZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lczsKIAogICAgIHN0YXRpYyBzaXplX3QgYWxsb2NhdGlvblNpemUoQ2hl
Y2tlZDxzaXplX3Q+IGlubGluZUNhcGFjaXR5KQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyLmgJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEpTQXJyYXlCdWZm
ZXIgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcg
QmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogICAgIAogcHJv
dGVjdGVkOgogICAgIEpTQXJyYXlCdWZmZXIoVk0mLCBTdHJ1Y3R1cmUqLCBSZWZQdHI8QXJyYXlC
dWZmZXI+JiYpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1
ZmZlclZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FycmF5QnVmZmVyVmlldy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC05Niw3
ICs5Niw3IEBAIGlubGluZSBib29sIGhhc0FycmF5QnVmZmVyKFR5cGVkQXJyYXlNb2QKIGNsYXNz
IEpTQXJyYXlCdWZmZXJWaWV3IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgog
ICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBmYXN0U2l6ZUxpbWl0ID0gMTAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IGZhc3RTaXplTGltaXQgPSAxMDAwOwogICAgIHVzaW5nIFZlY3RvclB0ciA9IENhZ2VkQmFycmll
clB0cjxHaWdhY2FnZTo6UHJpbWl0aXZlLCB2b2lkLCB0YWdDYWdlZFB0cj47CiAgICAgCiAgICAg
c3RhdGljIHNpemVfdCBzaXplT2YodWludDMyX3QgbGVuZ3RoLCB1aW50MzJfdCBlbGVtZW50U2l6
ZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3Mg
SlNCaWdJbnQgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICB1c2luZyBCYXNlID0gSlNDZWxs
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbCB8IE92ZXJyaWRlc1RvVGhpczsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsIHwgT3ZlcnJpZGVzVG9UaGlzOwogICAgIGZyaWVu
ZCBjbGFzcyBDYWNoZWRCaWdJbnQ7CiAKIHB1YmxpYzoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDkw
LDcgKzQ5MCw3IEBAIHR5cGVkZWYgSW50SGFzaDxFbmNvZGVkSlNWYWx1ZT4gRW5jb2RlZEoKIAog
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCiBzdHJ1Y3QgRW5jb2RlZEpTVmFsdWVIYXNoVHJhaXRzIDog
SGFzaFRyYWl0czxFbmNvZGVkSlNWYWx1ZT4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5
VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1
ZUlzWmVybyA9IGZhbHNlOwogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBlbXB0eVZhbHVlKCkg
eyByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7IH0KICAgICBzdGF0aWMgdm9pZCBj
b25zdHJ1Y3REZWxldGVkVmFsdWUoRW5jb2RlZEpTVmFsdWUmIHNsb3QpIHsgc2xvdCA9IEpTVmFs
dWU6OmVuY29kZShKU1ZhbHVlKEpTVmFsdWU6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSkpOyB9CiAg
ICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoRW5jb2RlZEpTVmFsdWUgdmFsdWUpIHsgcmV0
dXJuIHZhbHVlID09IEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKEpTVmFsdWU6Okhhc2hUYWJsZURl
bGV0ZWRWYWx1ZSkpOyB9CkBAIC01MDUsNyArNTA1LDcgQEAgc3RydWN0IEVuY29kZWRKU1ZhbHVl
SGFzaFRyYWl0cyA6IEhhc2hUcgogdHlwZWRlZiBzdGQ6OnBhaXI8RW5jb2RlZEpTVmFsdWUsIFNv
dXJjZUNvZGVSZXByZXNlbnRhdGlvbj4gRW5jb2RlZEpTVmFsdWVXaXRoUmVwcmVzZW50YXRpb247
CiAKIHN0cnVjdCBFbmNvZGVkSlNWYWx1ZVdpdGhSZXByZXNlbnRhdGlvbkhhc2hUcmFpdHMgOiBI
YXNoVHJhaXRzPEVuY29kZWRKU1ZhbHVlV2l0aFJlcHJlc2VudGF0aW9uPiB7Ci0gICAgc3RhdGlj
IGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiAgICAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlV2l0aFJlcHJlc2VudGF0aW9uIGVtcHR5VmFsdWUoKSB7IHJldHVybiBzdGQ6Om1ha2VfcGFp
cihKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKSwgU291cmNlQ29kZVJlcHJlc2VudGF0aW9uOjpP
dGhlcik7IH0KICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoRW5jb2RlZEpT
VmFsdWVXaXRoUmVwcmVzZW50YXRpb24mIHNsb3QpIHsgc2xvdCA9IHN0ZDo6bWFrZV9wYWlyKEpT
VmFsdWU6OmVuY29kZShKU1ZhbHVlKEpTVmFsdWU6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSkpLCBT
b3VyY2VDb2RlUmVwcmVzZW50YXRpb246Ok90aGVyKTsgfQogICAgIHN0YXRpYyBib29sIGlzRGVs
ZXRlZFZhbHVlKEVuY29kZWRKU1ZhbHVlV2l0aFJlcHJlc2VudGF0aW9uIHZhbHVlKSB7IHJldHVy
biB2YWx1ZSA9PSBzdGQ6Om1ha2VfcGFpcihKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShKU1ZhbHVl
OjpIYXNoVGFibGVEZWxldGVkVmFsdWUpKSwgU291cmNlQ29kZVJlcHJlc2VudGF0aW9uOjpPdGhl
cik7IH0KQEAgLTUyMCw3ICs1MjAsNyBAQCBzdHJ1Y3QgRW5jb2RlZEpTVmFsdWVXaXRoUmVwcmVz
ZW50YXRpb25ICiAgICAgewogICAgICAgICByZXR1cm4gYSA9PSBiOwogICAgIH0KLSAgICBzdGF0
aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1
ZTsKIH07CiAKIC8vIFN0YW5kLWFsb25lIGhlbHBlciBmdW5jdGlvbnMuCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNyAr
MSw3IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9y
dGVuQGtkZS5vcmcpCiAgKiAgQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9z
dC5jb20pCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC04Miw5ICs4Miw5IEBAIGNs
YXNzIEpTQ2VsbCA6IHB1YmxpYyBIZWFwQ2VsbCB7CiAgICAgZnJpZW5kIHZvaWQqIHRyeUFsbG9j
YXRlQ2VsbEhlbHBlcihIZWFwJiwgc2l6ZV90LCBHQ0RlZmVycmFsQ29udGV4dCosIEFsbG9jYXRp
b25GYWlsdXJlTW9kZSk7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSAwOwogCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZh
bHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFsc2U7
CiAKICAgICAvLyBEb24ndCBjYWxsIHRoaXMgZGlyZWN0bHkuIENhbGwgSlNDOjpzdWJzcGFjZUZv
cjxUeXBlPih2bSkgaW5zdGVhZC4KICAgICAvLyBGSVhNRTogUmVmZXIgdG8gU3Vic3BhY2UgYnkg
cmVmZXJlbmNlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDdXN0b21H
ZXR0ZXJTZXR0ZXJGdW5jdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24uaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJG
dW5jdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gVGhlIFR5cGUgaXMgc2V0IHRvIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRoZSByZXN1bHRh
bnQgZnVuY3Rpb24gd2lsbCBoYXZlLgogICAgIGVudW0gY2xhc3MgVHlwZSB7IEdldHRlciA9IDAs
IFNldHRlciA9IDEgfTsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2VzcyBtb2RlPgogICAgIHN0YXRpYyBJc29TdWJz
cGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNEYXRhVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRGF0YVZpZXcuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNyArMzMs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEpTRGF0YVZpZXcgZmluYWwgOiBwdWJsaWMgSlNB
cnJheUJ1ZmZlclZpZXcgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNBcnJheUJ1ZmZlclZpZXcg
QmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZWxlbWVudFNpemUgPSAxOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZWxlbWVudFNpemUgPSAxOwogICAgIAogcHJvdGVjdGVk
OgogICAgIEpTRGF0YVZpZXcoVk0mLCBDb25zdHJ1Y3Rpb25Db250ZXh0JiwgQXJyYXlCdWZmZXIq
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5
cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFW
aWV3UHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw3ICszMiw3
IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNEYXRhVmlld1Byb3RvdHlwZSBmaW5hbCA6IHB1
YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxP
YmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogcHJvdGVjdGVkOgogICAgIEpTRGF0YVZpZXdQ
cm90b3R5cGUoVk0mLCBTdHJ1Y3R1cmUqKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3QuaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBKU0Rlc3RydWN0aWJsZU9i
amVjdCA6IHB1YmxpYyBKU05vCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0
IEJhc2U7CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAgICAg
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgogICAgIHN0
YXRpYyBDb21wbGV0ZVN1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ZpeGVkQXJyYXkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ZpeGVkQXJyYXkuaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGaXhlZEFycmF5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBKU0ZpeGVkQXJyYXkgZmluYWwgOiBwdWJsaWMg
SlNDZWxsCiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKIAogcHVibGljOgotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3Ry
dWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAg
ICAgREVDTEFSRV9JTkZPOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgJKHJldmlzaW9uIDI0OTk3NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTYsOSArOTYsOSBAQCBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBKU0FycmF5QnVmZmVyVmlldyBCYXNlOwogICAgIHR5cGVkZWYgdHlwZW5hbWUgQWRhcHRvcjo6
VHlwZSBFbGVtZW50VHlwZTsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8
IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm87CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lcyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVyY2Vw
dHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm87CiAKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZWxlbWVudFNpemUgPSBzaXplb2YodHlwZW5hbWUgQWRh
cHRvcjo6VHlwZSk7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBlbGVtZW50U2l6ZSA9
IHNpemVvZih0eXBlbmFtZSBBZGFwdG9yOjpUeXBlKTsKICAgICAKIHByb3RlY3RlZDoKICAgICBK
U0dlbmVyaWNUeXBlZEFycmF5VmlldyhWTSYsIENvbnN0cnVjdGlvbkNvbnRleHQmKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxM
ZXhpY2FsRW52aXJvbm1lbnQuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zNCw3ICszNCw3IEBAIGNsYXNzIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50IGZpbmFsIDoK
IHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdDsKIAot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdDsKIAogICAgIHN0YXRpYyBKU0dsb2JhbExleGljYWxFbnZp
cm9ubWVudCogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTU2NvcGUqIHBh
cmVudFNjb3BlKQogICAgIHsKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IHZvaWQgZGVzdHJveShKU0NlbGwqKTsKICAgICAvLyBXZSBkb24ndCBuZWVkIGEgZGVzdHJ1Y3Rv
ciBiZWNhdXNlIHdlIHVzZSBhIGZpbmFsaXplciBpbnN0ZWFkLgotICAgIHN0YXRpYyBjb25zdCBi
b29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
bmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOwogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyBy
ZXR1cm4gIXN5bWJvbFRhYmxlKCktPnNpemUoKTsgfQogICAgIGJvb2wgaXNDb25zdFZhcmlhYmxl
KFVuaXF1ZWRTdHJpbmdJbXBsKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTUz
MSw3ICs1MzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIAogcHVibGljOgogICAgIHR5cGVkZWYgSlNT
ZWdtZW50ZWRWYXJpYWJsZU9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlU
YWJsZSB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5
TmFtZXMgfCBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdDsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBI
YXNTdGF0aWNQcm9wZXJ0eVRhYmxlIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3Zl
cnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0
OwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIEpTR2xvYmFsT2JqZWN0KiBjcmVhdGUo
Vk0mLCBTdHJ1Y3R1cmUqKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNJbW11dGFibGVCdXR0ZXJmbHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0ltbXV0YWJsZUJ1dHRlcmZseS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ltbXV0YWJsZUJ1dHRlcmZseS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgSlNJbW11dGFibGVCdXR0ZXJmbHkgOiBwdWJs
aWMgSlNDZQogICAgIHVzaW5nIEJhc2UgPSBKU0NlbGw7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0
cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAog
ICAgIERFQ0xBUkVfSU5GTzsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IuaAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFBy
b21pc2VDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgSlNJ
bnRlcm5hbFByb21pc2VQcm90b3R5cGU7CiBjbGFzcyBKU0ludGVybmFsUHJvbWlzZUNvbnN0cnVj
dG9yIGZpbmFsIDogcHVibGljIEpTUHJvbWlzZUNvbnN0cnVjdG9yIHsKIHB1YmxpYzoKICAgICB1
c2luZyBCYXNlID0gSlNQcm9taXNlQ29uc3RydWN0b3I7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBz
dGF0aWMgSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiwgU3RydWN0dXJl
KiwgSlNJbnRlcm5hbFByb21pc2VQcm90b3R5cGUqLCBHZXR0ZXJTZXR0ZXIqKTsKICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFs
dWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21p
c2VEZWZlcnJlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgSlNJbnRlcm5hbFByb21pc2U7CiBjbGFzcyBK
U0ludGVybmFsUHJvbWlzZURlZmVycmVkIGZpbmFsIDogcHVibGljIEpTUHJvbWlzZURlZmVycmVk
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTUHJvbWlzZURlZmVycmVkIEJhc2U7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7
CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgSlNJbnRlcm5hbFByb21pc2VEZWZlcnJl
ZCogdHJ5Q3JlYXRlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kik7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlUHJvdG90eXBlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21p
c2VQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw3
ICszMiw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNJbnRlcm5hbFByb21pc2VQcm90b3R5
cGUgZmluYWwgOiBwdWJsaWMgSlNQcm9taXNlUHJvdG90eXBlIHsKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEpTUHJvbWlzZVByb3RvdHlwZSBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAg
IHN0YXRpYyBKU0ludGVybmFsUHJvbWlzZVByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZp
cm9ubWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAwOSwgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsNyArNDgsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgdXNpbmcgQmFzZSA9IEpTU3ltYm9sVGFibGVPYmplY3Q7Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJy
aWRlc0dldFByb3BlcnR5TmFtZXM7CiAKICAgICBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+KiB2
YXJpYWJsZXMoKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TW9kdWxlRW52aXJvbm1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU01vZHVsZUVudmlyb25tZW50LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlRW52aXJvbm1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgSlNNb2R1bGVFbnZpcm9ubWVudCBmaW5hbCA6
IHB1YmxpYwogICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBwdWJsaWM6
CiAgICAgdXNpbmcgQmFzZSA9IEpTTGV4aWNhbEVudmlyb25tZW50OwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzOwogCiAgICAgc3RhdGljIEpTTW9kdWxlRW52aXJvbm1lbnQqIGNyZWF0ZShWTSYsIFN0
cnVjdHVyZSosIEpTU2NvcGUqLCBTeW1ib2xUYWJsZSosIEpTVmFsdWUgaW5pdGlhbFZhbHVlLCBB
YnN0cmFjdE1vZHVsZVJlY29yZCopOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU01vZHVsZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxNiBZdXN1a2UgU3V6dWtpIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNDAsNyArNDAsNyBA
QCBwcml2YXRlOgogICAgIEpTTW9kdWxlTG9hZGVyKFZNJiwgU3RydWN0dXJlKik7CiBwdWJsaWM6
CiAgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQ
cm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAg
ICBlbnVtIFN0YXR1cyB7CiAgICAgICAgIEZldGNoID0gMSwKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTmFtZXNwYWNlT2JqZWN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuaAko
cmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1
bGVOYW1lc3BhY2VPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogY2xhc3MgSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNE
ZXN0cnVjdGlibGVPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNEZXN0cnVjdGlibGVP
YmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVy
Y2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBP
dmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgR2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQ
cm9wZXJ0eUFic2VuY2UgfCBJc0ltbXV0YWJsZVByb3RvdHlwZUV4b3RpY09iamVjdDsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcmNlcHRzR2V0T3duUHJv
cGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgT3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lcyB8IEdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNl
IHwgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3Q7CiAKICAgICBzdGF0aWMgSlNNb2R1
bGVOYW1lc3BhY2VPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBBYnN0cmFjdE1vZHVsZVJlY29y
ZCogbW9kdWxlUmVjb3JkLCBWZWN0b3I8c3RkOjpwYWlyPElkZW50aWZpZXIsIEFic3RyYWN0TW9k
dWxlUmVjb3JkOjpSZXNvbHV0aW9uPj4mJiByZXNvbHV0aW9ucykKICAgICB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vbkRlc3RydWN0aWJsZVByb3h5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb25EZXN0cnVjdGlibGVQ
cm94eS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU05vbkRlc3RydWN0aWJsZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDgg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSlNOb25EZXN0cnVjdGlibGVQcm94eSA6IHB1
YmxpYyBKU1Byb3h5IHsKICAgICAgICAgcHVibGljOgogICAgICAgICAgICAgdXNpbmcgQmFzZSA9
IEpTUHJveHk7Ci0gICAgICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKLSAgICAgICAgICAgIHN0YXRpYyBjb25zdCBib29s
IG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKKyAgICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICAgICAg
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFsc2U7CiAKICAg
ICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2VzcyBtb2Rl
PgogICAgICAgICAgICAgICAgIHN0YXRpYyBDb21wbGV0ZVN1YnNwYWNlKiBzdWJzcGFjZUZvcihW
TSYgdm0pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0
LmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPTk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0MCw3ICs2NDAsNyBAQCBwcml2YXRl
OgogfTsKIAogLy8gV2UgY2xhbXAgcmVjdXJzaW9uIHdlbGwgYmV5b25kIGFueXRoaW5nIHJlYXNv
bmFibGUuCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4aW11bUZpbHRlclJlY3Vyc2lvbiA9IDQw
MDAwOworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhpbXVtRmlsdGVyUmVjdXJzaW9uID0g
NDAwMDA7CiBlbnVtIFdhbGtlclN0YXRlIHsgU3RhdGVVbmtub3duLCBBcnJheVN0YXJ0U3RhdGUs
IEFycmF5U3RhcnRWaXNpdE1lbWJlciwgQXJyYXlFbmRWaXNpdE1lbWJlciwgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RTdGFydFN0YXRlLCBPYmplY3RTdGFydFZpc2l0
TWVtYmVyLCBPYmplY3RFbmRWaXNpdE1lbWJlciB9OwogTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fs
a2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT05PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09OT2JqZWN0LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw3ICszMiw3
IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNPTk9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFz
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBKU09OT2JqZWN0KiBjcmVhdGUoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMzEsNyArMTEz
MSw3IEBAIGNsYXNzIEpTRmluYWxPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNPYmoKIAogcHVibGlj
OgogICAgIHR5cGVkZWYgSlNPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAg
ICBzdGF0aWMgc2l6ZV90IGFsbG9jYXRpb25TaXplKENoZWNrZWQ8c2l6ZV90PiBpbmxpbmVDYXBh
Y2l0eSkKICAgICB7CkBAIC0xMTM5LDE1ICsxMTM5LDE1IEBAIHB1YmxpYzoKICAgICB9CiAKICAg
ICBzdGF0aWMgaW5saW5lIGNvbnN0IFR5cGVJbmZvIHR5cGVJbmZvKCkgeyByZXR1cm4gVHlwZUlu
Zm8oRmluYWxPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyk7IH0KLSAgICBzdGF0aWMgY29uc3Qg
SW5kZXhpbmdUeXBlIGRlZmF1bHRJbmRleGluZ1R5cGUgPSBOb25BcnJheTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIEluZGV4aW5nVHlwZSBkZWZhdWx0SW5kZXhpbmdUeXBlID0gTm9uQXJyYXk7CiAg
ICAgICAgIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBkZWZhdWx0U2l6ZSA9IDY0OworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZGVmYXVsdFNpemUgPSA2NDsKICAgICBzdGF0aWMg
aW5saW5lIHVuc2lnbmVkIGRlZmF1bHRJbmxpbmVDYXBhY2l0eSgpCiAgICAgewogICAgICAgICBy
ZXR1cm4gKGRlZmF1bHRTaXplIC0gYWxsb2NhdGlvblNpemUoMCkpIC8gc2l6ZW9mKFdyaXRlQmFy
cmllcjxVbmtub3duPik7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFNp
emUgPSA1MTI7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhTaXplID0gNTEyOwog
ICAgIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbWF4SW5saW5lQ2FwYWNpdHkoKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIChtYXhTaXplIC0gYWxsb2NhdGlvblNpemUoMCkpIC8gc2l6ZW9mKFdyaXRl
QmFycmllcjxVbmtub3duPik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb21pc2VDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBHZXR0ZXJTZXR0ZXI7CiBjbGFzcyBK
U1Byb21pc2VDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU0Z1bmN0aW9uIHsKIHB1YmxpYzoKICAgICB1
c2luZyBCYXNlID0gSlNGdW5jdGlvbjsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBKU1By
b21pc2VDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgSlNQcm9taXNlUHJvdG90
eXBlKiwgR2V0dGVyU2V0dGVyKiBzcGVjaWVzU3ltYm9sKTsKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlRGVmZXJyZWQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJlZC5o
CShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1By
b21pc2VEZWZlcnJlZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgSlNGdW5j
dGlvbjsKIGNsYXNzIEpTUHJvbWlzZURlZmVycmVkIDogcHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAogICAgIHN0cnVjdCBEZWZlcnJl
ZERhdGEgewogICAgICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVByb3RvdHlwZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVByb3RvdHlwZS5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21p
c2VQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogY2xhc3MgSlNQcm9taXNlUHJvdG90eXBlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFz
U3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxl
OwogCiAgICAgc3RhdGljIEpTUHJvbWlzZVByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgJ
KHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
cGVydHlOYW1lRW51bWVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIG5h
bWVzcGFjZSBKU0MgewogY2xhc3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIGZpbmFsIDogcHVi
bGljIEpTQ2VsbCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTQ2VsbDsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsK
IAogICAgIHN0YXRpYyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGNyZWF0ZShWTSYsIFN0cnVj
dHVyZSosIHVpbnQzMl90LCB1aW50MzJfdCwgUHJvcGVydHlOYW1lQXJyYXkmJik7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJveHkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3h5LmgJKHJldmlzaW9uIDI0OTk3NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJveHkuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNQcm94eSA6IHB1YmxpYyBK
U0Rlc3RydWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTRGVzdHJ1
Y3RpYmxlT2JqZWN0OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3Zl
cnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm87CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEludGVyY2VwdHNHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm87CiAKICAgICBzdGF0
aWMgSlNQcm94eSogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2JqZWN0
KiB0YXJnZXQpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
Y29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2Nv
cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTY29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMi0yMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBXYXRjaHBv
aW50U2V0OwogY2xhc3MgSlNTY29wZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1Ymxp
YzoKICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRl
c1RvVGhpczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNUb1RoaXM7CiAKICAgICBERUNMQVJFX0VY
UE9SVF9JTkZPOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njcmlw
dEZldGNoUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDggKzM3LDggQEAgY2xhc3MgSlNTY3JpcHRGZXRjaFBhcmFtZXRl
cnMgZmluYWwgOiBwdQogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU0NlbGw7CiAKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0
cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAKICAgICBERUNM
QVJFX0VYUE9SVF9JTkZPOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1NjcmlwdEZldGNoZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1NjcmlwdEZldGNoZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTY3JpcHRGZXRjaGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDggKzM3LDggQEAgY2xhc3MgSlNTY3JpcHRGZXRjaGVyIGZpbmFsIDogcHVibGljIEpTQwogcHVi
bGljOgogICAgIHVzaW5nIEJhc2UgPSBKU0NlbGw7CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1t
b3J0YWw7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAKICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxl
T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
ZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogCi0g
ICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgogICAgIHN0YXRpYyBDb21wbGV0ZVN1
YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1NvdXJjZUNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1NvdXJjZUNvZGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTb3VyY2VDb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE2IFl1c3VrZSBTdXp1a2kgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDgg
KzM2LDggQEAgY2xhc3MgSlNTb3VyY2VDb2RlIGZpbmFsIDogcHVibGljIEpTQ2VsbAogcHVibGlj
OgogICAgIHVzaW5nIEJhc2UgPSBKU0NlbGw7CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0
YWw7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
bmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAKICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIEpTU3RyaW5nOjp2aXNpdENo
aWxkcmVuKEpTQ2VsbCogY2VsCiAgICAgICAgIHZpc2l0b3IucmVwb3J0RXh0cmFNZW1vcnlWaXNp
dGVkKGltcGwtPmNvc3REdXJpbmdHQygpKTsKIH0KIAotc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1h
eExlbmd0aEZvck9uU3RhY2tSZXNvbHZlID0gMjA0ODsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgbWF4TGVuZ3RoRm9yT25TdGFja1Jlc29sdmUgPSAyMDQ4OwogCiB2b2lkIEpTUm9wZVN0cmlu
Zzo6cmVzb2x2ZVJvcGVJbnRlcm5hbDgoTENoYXIqIGJ1ZmZlcikgY29uc3QKIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAkocmV2aXNpb24gMjQ5OTc2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAkod29ya2luZyBjb3B5
KQpAQCAtODgsOSArODgsOSBAQCBwdWJsaWM6CiAgICAgZnJpZW5kIGNsYXNzIFNtYWxsU3RyaW5n
czsKIAogICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVu
TGVuZ3RoSXNOb3RaZXJvIHwgU3RydWN0dXJlSXNJbW1vcnRhbCB8IE92ZXJyaWRlc1RvVGhpczsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcmNlcHRzR2V0
T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgU3RydWN0dXJl
SXNJbW1vcnRhbCB8IE92ZXJyaWRlc1RvVGhpczsKIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5l
ZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rl
c3RydWN0aW9uID0gdHJ1ZTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogICAg
IAogICAgIC8vIFdlIHNwZWNpYWxpemUgdGhlIHN0cmluZyBzdWJzcGFjZSB0byBnZXQgdGhlIGZh
c3Rlc3QgcG9zc2libGUgc3dlZXAuIFRoaXMgd291bGRuJ3QgYmUKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmgJKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9sVGFi
bGVPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIsIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiBjbGFzcyBKU1N5bWJvbFRhYmxlT2JqZWN0IDogcHVibGljIEpTU2NvcGUgewog
cHVibGljOgogICAgIHR5cGVkZWYgSlNTY29wZSBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwog
ICAgIAogICAgIFN5bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3lt
Ym9sVGFibGUuZ2V0KCk7IH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVGVtcGxhdGVPYmplY3REZXNjcmlwdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUZW1wbGF0ZU9iamVjdERlc2NyaXB0b3IuaAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUZW1wbGF0ZU9i
amVjdERlc2NyaXB0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4K
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDggKzM1LDggQEAgY2xhc3MgSlNU
ZW1wbGF0ZU9iamVjdERlc2NyaXB0b3IgZmluYWwgOgogcHVibGljOgogICAgIHVzaW5nIEJhc2Ug
PSBKU0NlbGw7CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7Ci0gICAgc3RhdGljIGNv
bnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJl
SXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9
IHRydWU7CiAgICAgREVDTEFSRV9JTkZPOwogCiAgICAgc3RhdGljIEpTVGVtcGxhdGVPYmplY3RE
ZXNjcmlwdG9yKiBjcmVhdGUoVk0mLCBSZWY8VGVtcGxhdGVPYmplY3REZXNjcmlwdG9yPiYmLCBp
bnQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaAko
cmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLy8gLSotIG1vZGU6IGMrKzsg
Yy1iYXNpYy1vZmZzZXQ6IDQgLSotCiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzcsMjYgKzM3LDI2IEBAIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsK
IAogLy8gSW5saW5lIGZsYWdzLgogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgTWFzcXVlcmFkZXNB
c1VuZGVmaW5lZCA9IDE7IC8vIFdlYkNvcmUgdXNlcyBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHRv
IG1ha2UgZG9jdW1lbnQuYWxsIHVuZGV0ZWN0YWJsZS4KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBJ
bXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlID0gMSA8PCAxOwotc3RhdGljIGNvbnN0IHVuc2ln
bmVkIE92ZXJyaWRlc0dldENhbGxEYXRhID0gMSA8PCAyOyAvLyBOZWVkIHRoaXMgZmxhZyBpZiB5
b3UgaW1wbGVtZW50IFtbQ2FsbGFibGVdXSBpbnRlcmZhY2UsIHdoaWNoIG1lYW5zIG92ZXJyaWRp
bmcgZ2V0Q2FsbERhdGEuIFRoZSBvYmplY3QgbWF5IG5vdCBiZSBjYWxsYWJsZSBzaW5jZSBnZXRD
YWxsRGF0YSBjYW4gc2F5IGl0IGlzIG5vdCBjYWxsYWJsZS4KLXN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgPSAxIDw8IDM7Ci1zdGF0aWMgY29uc3QgdW5z
aWduZWQgT3ZlcnJpZGVzVG9UaGlzID0gMSA8PCA0OyAvLyBJZiB0aGlzIGlzIGZhbHNlIHRoZW4g
dGhpcyByZXR1cm5zIHNvbWV0aGluZyBvdGhlciB0aGFuICd0aGlzJy4gTm9uLW9iamVjdCBjZWxs
cyB0aGF0IGFyZSB2aXNpYmxlIHRvIEpTIGhhdmUgdGhpcyBzZXQgYXMgZG8gc29tZSBleG90aWMg
b2JqZWN0cy4KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlID0g
MSA8PCA1Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIFR5cGVJbmZvUGVyQ2VsbEJpdCA9IDEgPDwg
NzsgLy8gVW5saWtlIG90aGVyIGlubGluZSBmbGFncywgdGhpcyB3aWxsIG9ubHkgYmUgc2V0IG9u
IHRoZSBjZWxsIGl0c2VsZiBhbmQgd2lsbCBub3QgYmUgc2V0IG9uIHRoZSBTdHJ1Y3R1cmUuCitz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgPSAxOyAvLyBX
ZWJDb3JlIHVzZXMgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCB0byBtYWtlIGRvY3VtZW50LmFsbCB1
bmRldGVjdGFibGUuCitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEltcGxlbWVudHNEZWZhdWx0
SGFzSW5zdGFuY2UgPSAxIDw8IDE7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIE92ZXJyaWRl
c0dldENhbGxEYXRhID0gMSA8PCAyOyAvLyBOZWVkIHRoaXMgZmxhZyBpZiB5b3UgaW1wbGVtZW50
IFtbQ2FsbGFibGVdXSBpbnRlcmZhY2UsIHdoaWNoIG1lYW5zIG92ZXJyaWRpbmcgZ2V0Q2FsbERh
dGEuIFRoZSBvYmplY3QgbWF5IG5vdCBiZSBjYWxsYWJsZSBzaW5jZSBnZXRDYWxsRGF0YSBjYW4g
c2F5IGl0IGlzIG5vdCBjYWxsYWJsZS4KK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgT3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90ID0gMSA8PCAzOworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBPdmVycmlkZXNUb1RoaXMgPSAxIDw8IDQ7IC8vIElmIHRoaXMgaXMgZmFsc2UgdGhlbiB0aGlz
IHJldHVybnMgc29tZXRoaW5nIG90aGVyIHRoYW4gJ3RoaXMnLiBOb24tb2JqZWN0IGNlbGxzIHRo
YXQgYXJlIHZpc2libGUgdG8gSlMgaGF2ZSB0aGlzIHNldCBhcyBkbyBzb21lIGV4b3RpYyBvYmpl
Y3RzLgorc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlID0g
MSA8PCA1Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBUeXBlSW5mb1BlckNlbGxCaXQgPSAx
IDw8IDc7IC8vIFVubGlrZSBvdGhlciBpbmxpbmUgZmxhZ3MsIHRoaXMgd2lsbCBvbmx5IGJlIHNl
dCBvbiB0aGUgY2VsbCBpdHNlbGYgYW5kIHdpbGwgbm90IGJlIHNldCBvbiB0aGUgU3RydWN0dXJl
LgogCiAvLyBPdXQgb2YgbGluZSBmbGFncy4KIAotc3RhdGljIGNvbnN0IHVuc2lnbmVkIEltcGxl
bWVudHNIYXNJbnN0YW5jZSA9IDEgPDwgODsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBPdmVycmlk
ZXNHZXRQcm9wZXJ0eU5hbWVzID0gMSA8PCA5Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIFByb2hp
Yml0c1Byb3BlcnR5Q2FjaGluZyA9IDEgPDwgMTA7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgR2V0
T3duUHJvcGVydHlTbG90SXNJbXB1cmUgPSAxIDw8IDExOwotc3RhdGljIGNvbnN0IHVuc2lnbmVk
IE5ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cyA9IDEgPDwgMTI7Ci1zdGF0aWMgY29u
c3QgdW5zaWduZWQgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3QgPSAxIDw8IDEzOwot
c3RhdGljIGNvbnN0IHVuc2lnbmVkIEdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVy
dHlBYnNlbmNlID0gMSA8PCAxNDsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbnRlcmNlcHRzR2V0
T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvID0gMSA8PCAxNTsK
LXN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVJc0ltbW9ydGFsID0gMSA8PCAxNjsKLXN0
YXRpYyBjb25zdCB1bnNpZ25lZCBIYXNQdXRQcm9wZXJ0eVNlY3VyaXR5Q2hlY2sgPSAxIDw8IDE3
Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgPSAxIDw8
IDg7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMg
PSAxIDw8IDk7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFByb2hpYml0c1Byb3BlcnR5Q2Fj
aGluZyA9IDEgPDwgMTA7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEdldE93blByb3BlcnR5
U2xvdElzSW1wdXJlID0gMSA8PCAxMTsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgTmV3SW1w
dXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRzID0gMSA8PCAxMjsKK3N0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3QgPSAxIDw8IDEzOworc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3Bl
cnR5QWJzZW5jZSA9IDEgPDwgMTQ7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEludGVyY2Vw
dHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gPSAxIDw8
IDE1Oworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVJc0ltbW9ydGFsID0gMSA8
PCAxNjsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgSGFzUHV0UHJvcGVydHlTZWN1cml0eUNo
ZWNrID0gMSA8PCAxNzsKIAogY2xhc3MgVHlwZUluZm8gewogcHVibGljOgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3MgTWFwUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTTm9uRgogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwogCi0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1By
b3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgTWFwUHJvdG90eXBlKiBjcmVhdGUoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NaW5pbXVtUmVzZXJ2ZWRab25l
U2l6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01pbmlt
dW1SZXNlcnZlZFpvbmVTaXplLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL01pbmltdW1SZXNlcnZlZFpvbmVTaXplLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjksNyArMjksNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKICAgICAKLXN0YXRpYyBjb25zdCB1bnNp
Z25lZCBtaW5pbXVtUmVzZXJ2ZWRab25lU2l6ZSA9IDE2ICogS0I7CitzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIG1pbmltdW1SZXNlcnZlZFpvbmVTaXplID0gMTYgKiBLQjsKICAgICAKIH0gLy8g
bmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1
bGVQcm9ncmFtRXhlY3V0YWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01vZHVsZVByb2dyYW1FeGVjdXRhYmxlLmgJKHJldmlzaW9uIDI0OTk3NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZVByb2dyYW1FeGVjdXRhYmxlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5
LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA5LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIE1vZHVsZVByb2dyYW1FeGVj
dXRhYmxlIGZpbmFsIDogcHUKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9y
OwogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBHbG9iYWxFeGVjdXRhYmxlOwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
U3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzIG1vZGU+CiAg
ICAgc3RhdGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFeGVjdXRhYmxlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXhlY3V0YWJsZS5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFeGVjdXRh
YmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgTmF0aXZlRXhlY3V0
YWJsZSBmaW5hbCA6IHB1YmxpYyBFeAogICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRy
YWN0b3I7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBFeGVjdXRhYmxlQmFzZSBCYXNlOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFs
OwogCiAgICAgc3RhdGljIE5hdGl2ZUV4ZWN1dGFibGUqIGNyZWF0ZShWTSYsIFJlZjxKSVRDb2Rl
PiYmIGNhbGxUaHVuaywgVGFnZ2VkTmF0aXZlRnVuY3Rpb24sIFJlZjxKSVRDb2RlPiYmIGNvbnN0
cnVjdFRodW5rLCBUYWdnZWROYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvciwgY29uc3QgU3RyaW5n
JiBuYW1lKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRnVu
Y3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVGdW5jdGlvbi5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVGdW5jdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYwLDcgKzYwLDcgQEAgcHJp
dmF0ZToKIHN0cnVjdCBOYXRpdmVGdW5jdGlvbkhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBo
YXNoKE5hdGl2ZUZ1bmN0aW9uIGtleSkgeyByZXR1cm4gSW50SGFzaDx1aW50cHRyX3Q+OjpoYXNo
KGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGtleSkpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwo
TmF0aXZlRnVuY3Rpb24gYSwgTmF0aXZlRnVuY3Rpb24gYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0g
ICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRl
ZCA9IHRydWU7CiB9OwogCiBjbGFzcyBUYWdnZWROYXRpdmVGdW5jdGlvbiB7CkBAIC05OCw3ICs5
OCw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgVGFnZ2VkTmF0aXZlRnVuY3Rpb25IYXNoIHsKICAgICBz
dGF0aWMgdW5zaWduZWQgaGFzaChUYWdnZWROYXRpdmVGdW5jdGlvbiBrZXkpIHsgcmV0dXJuIElu
dEhhc2g8dWludHB0cl90Pjo6aGFzaChiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihrZXkpKTsgfQog
ICAgIHN0YXRpYyBib29sIGVxdWFsKFRhZ2dlZE5hdGl2ZUZ1bmN0aW9uIGEsIFRhZ2dlZE5hdGl2
ZUZ1bmN0aW9uIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNh
ZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogc3RhdGlj
X2Fzc2VydChzaXplb2YoTmF0aXZlRnVuY3Rpb24pID09IHNpemVvZih2b2lkKiksICIiKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZVN0ZEZ1bmN0aW9uQ2VsbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZVN0ZEZ1
bmN0aW9uQ2VsbC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVTdGRGdW5jdGlvbkNlbGwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw4ICszMyw4
IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgTmF0aXZlU3RkRnVuY3Rpb25DZWxsIGZpbmFsIDog
cHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0
cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAKICAgICBzdGF0
aWMgTmF0aXZlU3RkRnVuY3Rpb25DZWxsKiBjcmVhdGUoVk0mLCBOYXRpdmVTdGRGdW5jdGlvbiYm
KTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJD
b25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBr
ZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzAsNyArMzAsNyBAQCBjbGFzcyBH
ZXR0ZXJTZXR0ZXI7CiBjbGFzcyBOdW1iZXJDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRl
cm5hbEZ1bmN0aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFz
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IEhhc1N0YXRpY1Byb3BlcnR5VGFi
bGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSGFzU3RhdGljUHJvcGVy
dHlUYWJsZTsKIAogICAgIHN0YXRpYyBOdW1iZXJDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE51bWJlclByb3RvdHlwZSogbnVtYmVyUHJvdG90eXBlLCBH
ZXR0ZXJTZXR0ZXIqKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlclByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlclByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVu
IChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTI3LDcg
KzI3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBOdW1iZXJQcm90b3R5cGUgZmluYWwgOiBw
dWJsaWMgTnVtYmVyT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIE51bWJlck9iamVjdCBC
YXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNT
dGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIE51bWJlclByb3RvdHlwZSogY3JlYXRl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYg
KzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBv
cnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwOCwgMjAxNi0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0zNyw3
ICszNyw3IEBAIGNsYXNzIE9iamVjdFByb3RvdHlwZTsKIGNsYXNzIE9iamVjdENvbnN0cnVjdG9y
IGZpbmFsIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYg
SW50ZXJuYWxGdW5jdGlvbiBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIE9iamVj
dENvbnN0cnVjdG9yKiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgT2JqZWN0UHJvdG90eXBlKiBvYmplY3RQcm90b3R5cGUp
CiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90
eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
UHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdFByb3RvdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAog
LyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUu
b3JnKQotICogIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjcsNyArMjcsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIGNsYXNzIE9iamVjdFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0OworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0OwogCiAgICAgc3RhdGljIE9iamVjdFBy
b3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvZ3JhbUV4ZWN1dGFibGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9ncmFtRXhlY3V0YWJs
ZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm9ncmFtRXhlY3V0YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyArMzQsNyBAQCBjbGFz
cyBQcm9ncmFtRXhlY3V0YWJsZSBmaW5hbCA6IHB1YmxpYyBHCiAgICAgZnJpZW5kIGNsYXNzIExM
SW50T2Zmc2V0c0V4dHJhY3RvcjsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gR2xvYmFsRXhl
Y3V0YWJsZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3Ry
dWN0dXJlSXNJbW1vcnRhbDsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJz
cGFjZUFjY2Vzcz4KICAgICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNl
RGVmZXJyZWRUaW1lci5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzUsNyArMzUsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIG5hbWVzcGFjZSBQcm9taXNlRGVmZXJy
ZWRUaW1lckludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0
YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAKIFByb21pc2VEZWZlcnJl
ZFRpbWVyOjpQcm9taXNlRGVmZXJyZWRUaW1lcihWTSYgdm0pCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU1hcEhhc2hUYWJsZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgJKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFw
SGFzaFRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEyMSw3ICsx
MjEsNyBAQCBjbGFzcyBQcm9wZXJ0eVRhYmxlIGZpbmFsIDogcHVibGljIEpTQ2VsCiAKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRh
bDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgogICAgIHN0YXRpYyBJc29TdWJzcGFjZSog
c3Vic3BhY2VGb3IoVk0mIHZtKQpAQCAtMTI5LDcgKzEyOSw3IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuICZ2bS5wcm9wZXJ0eVRhYmxlU3BhY2U7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0
IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxs
Kik7CiAKICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwpAQCAtMjAyLDcgKzIwMiw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mSW5kZXhNYXNrKCkgeyByZXR1cm4gT0JK
RUNUX09GRlNFVE9GKFByb3BlcnR5VGFibGUsIG1faW5kZXhNYXNrKTsgfQogICAgIHN0YXRpYyBw
dHJkaWZmX3Qgb2Zmc2V0T2ZJbmRleCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihQcm9wZXJ0
eVRhYmxlLCBtX2luZGV4KTsgfQogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEVtcHR5RW50
cnlJbmRleCA9IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBFbXB0eUVudHJ5SW5k
ZXggPSAwOwogCiBwcml2YXRlOgogICAgIFByb3BlcnR5VGFibGUoVk0mLCB1bnNpZ25lZCBpbml0
aWFsQ2FwYWNpdHkpOwpAQCAtMjU4LDcgKzI1OCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQg
bV9kZWxldGVkQ291bnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxQcm9wZXJ0eU9mZnNl
dD4+IG1fZGVsZXRlZE9mZnNldHM7CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgTWluaW11
bVRhYmxlU2l6ZSA9IDE2OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgTWluaW11bVRh
YmxlU2l6ZSA9IDE2OwogfTsKIAogaW5saW5lIFByb3BlcnR5VGFibGU6Oml0ZXJhdG9yIFByb3Bl
cnR5VGFibGU6OmJlZ2luKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5TmFtZUFycmF5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaAkod29ya2luZyBjb3B5KQpA
QCAtMTE1LDcgKzExNSw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBQcm9wZXJ0eU5hbWVBcnJheTo6
YWQKIAogQUxXQVlTX0lOTElORSB2b2lkIFByb3BlcnR5TmFtZUFycmF5OjphZGQoVW5pcXVlZFN0
cmluZ0ltcGwqIGlkZW50aWZpZXIpCiB7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNldFRo
cmVzaG9sZCA9IDIwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc2V0VGhyZXNob2xk
ID0gMjA7CiAKICAgICBBU1NFUlQoaWRlbnRpZmllcik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3RvdHlwZUtleS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3RvdHlwZUtleS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm90b3R5cGVLZXkuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAKIHByaXZhdGU6CiAgICAgLy8gV0FSTklORzog
V2UgcmVxdWlyZSBhbGwgb2YgdGhlc2UgZGVmYXVsdCB2YWx1ZXMgdG8gYmUgemVyby4gT3RoZXJ3
aXNlLCB5b3UnbGwgbmVlZCB0byBhZGQKLSAgICAvLyAic3RhdGljIGNvbnN0IGJvb2wgZW1wdHlW
YWx1ZUlzWmVybyA9IGZhbHNlOyIgdG8gdGhlIEhhc2hUcmFpdHMgYXQgdGhlIGJvdHRvbSBvZiB0
aGlzIGZpbGUuCisgICAgLy8gInN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJv
ID0gZmFsc2U7IiB0byB0aGUgSGFzaFRyYWl0cyBhdCB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZS4K
ICAgICBKU09iamVjdCogbV9wcm90b3R5cGUgeyBudWxscHRyIH07IAogICAgIEZ1bmN0aW9uRXhl
Y3V0YWJsZSogbV9leGVjdXRhYmxlIHsgbnVsbHB0ciB9OyAKICAgICB1bnNpZ25lZCBtX2lubGlu
ZUNhcGFjaXR5IHsgMCB9OwpAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogc3RydWN0IFByb3Rv
dHlwZUtleUhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFByb3RvdHlwZUtl
eSYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29u
c3QgUHJvdG90eXBlS2V5JiBhLCBjb25zdCBQcm90b3R5cGVLZXkmIGIpIHsgcmV0dXJuIGEgPT0g
YjsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlP
ckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVj
dG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNz
IFByb3h5Q29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJs
aWM6CiAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzOwogCiAgICAgc3RhdGljIFByb3h5Q29uc3RydWN0b3IqIGNyZWF0ZShWTSYsIFN0cnVjdHVy
ZSopOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmpl
Y3QuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk3NCw4ICs5NzQsOCBAQCB2b2lk
IFByb3h5T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOCiAgICAgICAgIEFTU0VSVChyZXN1
bHRGaWx0ZXIpOwogCiAgICAgICAgIGF1dG8gYWRkUHJvcE5hbWUgPSBbJl0gKEpTVmFsdWUgdmFs
dWUsIFJ1bnRpbWVUeXBlIHR5cGUpIC0+IGJvb2wgewotICAgICAgICAgICAgc3RhdGljIGNvbnN0
IGJvb2wgZG9FeGl0RWFybHkgPSB0cnVlOwotICAgICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
ZG9udEV4aXRFYXJseSA9IGZhbHNlOworICAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGRvRXhpdEVhcmx5ID0gdHJ1ZTsKKyAgICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBk
b250RXhpdEVhcmx5ID0gZmFsc2U7CiAKICAgICAgICAgICAgIElkZW50aWZpZXIgaWRlbnQgPSB2
YWx1ZS50b1Byb3BlcnR5S2V5KGV4ZWMpOwogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgZG9FeGl0RWFybHkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJveHlSZXZva2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm94eVJldm9rZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm94eVJldm9rZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcgKzM0LDcgQEAg
Y2xhc3MgUHJveHlPYmplY3Q7CiBjbGFzcyBQcm94eVJldm9rZSBmaW5hbCA6IHB1YmxpYyBJbnRl
cm5hbEZ1bmN0aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFz
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlw
ZSwgU3Vic3BhY2VBY2Nlc3MgbW9kZT4KICAgICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNl
Rm9yKFZNJiB2bSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxlY3RP
YmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWZs
ZWN0T2JqZWN0LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZmxlY3RPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBAIHByaXZh
dGU6CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVy
dHlUYWJsZTsKIAogICAgIHN0YXRpYyBSZWZsZWN0T2JqZWN0KiBjcmVhdGUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJp
IFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAy
MDA5LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQg
KEMpIDIwMDctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgQ29weXJp
Z2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00MywxMCAr
NDMsMTAgQEAgY2xhc3MgUmVnRXhwIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAKIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIFJlZ0V4cCogY3JlYXRlKFZNJiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBPcHRp
b25TZXQ8WWFycjo6RmxhZ3M+KTsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0
aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9
IHRydWU7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKICAgICBzdGF0aWMgc2l6
ZV90IGVzdGltYXRlZFNpemUoSlNDZWxsKiwgVk0mKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBz
dGF0aWMgdm9pZCBkdW1wVG9TdHJlYW0oY29uc3QgSlNDZWxsKiwgUHJpbnRTdHJlYW0mKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuaAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAxMCBV
bml2ZXJzaXR5IG9mIFN6ZWdlZAogICogQ29weXJpZ2h0IChDKSAyMDEwIFJlbmF0YSBIb2RvdmFu
IChob2RvdmFuQGluZi51LXN6ZWdlZC5odSkKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OSw5ICs2MCw5IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4U3Ryb25nQ2FjaGVhYmxl
UGF0dGVybkxlbmd0aCA9IDI1NjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heFN0
cm9uZ0NhY2hlYWJsZVBhdHRlcm5MZW5ndGggPSAyNTY7CiAKLSAgICBzdGF0aWMgY29uc3QgaW50
IG1heFN0cm9uZ0NhY2hlYWJsZUVudHJpZXMgPSAzMjsKKyAgICBzdGF0aWMgY29uc3RleHByIGlu
dCBtYXhTdHJvbmdDYWNoZWFibGVFbnRyaWVzID0gMzI7CiAKICAgICB2b2lkIGZpbmFsaXplKEhh
bmRsZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAkocmV2aXNp
b24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3Ry
dWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0
IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmln
aHQgKEMpIDIwMDMtMjAxOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAgQ29w
eXJpZ2h0IChDKSAyMDAzLTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoK
ICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBHZXR0ZXJTZXR0ZXI7CiBj
bGFzcyBSZWdFeHBDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsK
IHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhh
c1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJs
ZTsKIAogICAgIHN0YXRpYyBSZWdFeHBDb25zdHJ1Y3RvciogY3JlYXRlKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIFJlZ0V4cFByb3RvdHlwZSogcmVnRXhwUHJvdG90eXBlLCBHZXR0ZXJT
ZXR0ZXIqIHNwZWNpZXMpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwS2V5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwS2V5LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cEtleS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICog
Q29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgUmVuYXRhIEhvZG92YW4gKGhvZG92YW5AaW5mLnUtc3plZ2VkLmh1KQogICogQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY5LDcgKzcw
LDcgQEAgc3RydWN0IFJlZ0V4cEtleSB7CiAgICAgc3RydWN0IEhhc2ggewogICAgICAgICBzdGF0
aWMgdW5zaWduZWQgaGFzaChjb25zdCBSZWdFeHBLZXkmIGtleSkgeyByZXR1cm4ga2V5LnBhdHRl
cm4tPmhhc2goKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBSZWdFeHBLZXkm
IGEsIGNvbnN0IFJlZ0V4cEtleSYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgICAgIHN0YXRp
YyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAg
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9
IGZhbHNlOwogICAgIH07CiB9OwogCkBAIC05NCw3ICs5NSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0
IERlZmF1bHRIYXNoPEpTQzo6UmVnRXgKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFp
dHM8SlNDOjpSZWdFeHBLZXk+IDogR2VuZXJpY0hhc2hUcmFpdHM8SlNDOjpSZWdFeHBLZXk+IHsK
LSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1ZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CiAgICAgc3RhdGljIHZv
aWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKEpTQzo6UmVnRXhwS2V5JiBzbG90KSB7IHNsb3QuZmxh
Z3NWYWx1ZSA9IEpTQzo6WWFycjo6RmxhZ3M6OkRlbGV0ZWRWYWx1ZTsgfQogICAgIHN0YXRpYyBi
b29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IEpTQzo6UmVnRXhwS2V5JiB2YWx1ZSkgeyByZXR1cm4g
dmFsdWUuZmxhZ3NWYWx1ZSA9PSBKU0M6OllhcnI6OkZsYWdzOjpEZWxldGVkVmFsdWU7IH0KIH07
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAko
cmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdo
dCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDAzLCAyMDA3LTIwMDgsIDIwMTIsIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMy0yMDE5IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTMwLDcgKzMwLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiBjbGFzcyBSZWdFeHBPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJy
aWRlc0dldFByb3BlcnR5TmFtZXM7CiAKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBs
YXN0SW5kZXhJc05vdFdyaXRhYmxlRmxhZyA9IDE7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAg
SGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIw
MDctMjAwOCwgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAgQ29weXJp
Z2h0IChDKSAyMDAzLTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFJl
Z0V4cFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7
CiAKICAgICBzdGF0aWMgUmVnRXhwUHJvdG90eXBlKiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBTdHJpbmdJdGVyYXRvclByb3RvdHlw
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFN0
cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE5IEFsZXhl
eSBTaHZheWthIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+LgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzIsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFJlZ0V4cFN0
cmluZ0l0ZXJhdG9yUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0OwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFz
U3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxl
OwogCiAgICAgc3RhdGljIFJlZ0V4cFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlKiBjcmVhdGUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
ICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2Zp
bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1w
bGluZ1Byb2ZpbGVyLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDgg
KzY1LDggQEAgc3RhdGljIGRvdWJsZSBzTnVtVG90YWxXYWxrcyA9IDA7CiBzdGF0aWMgZG91Ymxl
IHNOdW1GYWlsZWRXYWxrcyA9IDA7CiBzdGF0aWMgY29uc3QgdWludDMyX3Qgc051bVdhbGtSZXBv
cnRpbmdGcmVxdWVuY3kgPSA1MDsKIHN0YXRpYyBjb25zdCBkb3VibGUgc1dhbGtFcnJvclBlcmNl
bnRhZ2UgPSAuMDU7Ci1zdGF0aWMgY29uc3QgYm9vbCBzUmVwb3J0U3RhdHNPbmx5V2hlblRoZXly
ZUFib3ZlVGhyZXNob2xkID0gZmFsc2U7Ci1zdGF0aWMgY29uc3QgYm9vbCBzUmVwb3J0U3RhdHMg
PSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCBzUmVwb3J0U3RhdHNPbmx5V2hlblRoZXly
ZUFib3ZlVGhyZXNob2xkID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgc1JlcG9ydFN0
YXRzID0gZmFsc2U7CiAKIHVzaW5nIEZyYW1lVHlwZSA9IFNhbXBsaW5nUHJvZmlsZXI6OkZyYW1l
VHlwZTsKIHVzaW5nIFVucHJvY2Vzc2VkU3RhY2tGcmFtZSA9IFNhbXBsaW5nUHJvZmlsZXI6OlVu
cHJvY2Vzc2VkU3RhY2tGcmFtZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Njb3BlZEFyZ3VtZW50c1RhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzVGFibGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzVGFibGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgU2NvcGVkQXJndW1lbnRzVGFibGUg
ZmluYWwgOiBwdWJsaQogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRh
bDsKICAgICAKIHByaXZhdGU6CiAgICAgU2NvcGVkQXJndW1lbnRzVGFibGUoVk0mKTsKQEAgLTUz
LDcgKzUzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBTY29wZWRBcmd1bWVudHNUYWJsZSogY3Jl
YXRlKFZNJik7CiAgICAgc3RhdGljIFNjb3BlZEFyZ3VtZW50c1RhYmxlKiBjcmVhdGUoVk0mLCB1
aW50MzJfdCBsZW5ndGgpOwogICAgIAotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1
Y3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9u
ID0gdHJ1ZTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCiAgICAgU2NvcGVk
QXJndW1lbnRzVGFibGUqIGNsb25lKFZNJik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgSXNvQ2VsbFNldDsKIGNsYXNzIFNjcmlwdEV4
ZWN1dGFibGUgOiBwdWJsaWMgRXhlY3V0YWJsZUJhc2UgewogcHVibGljOgogICAgIHR5cGVkZWYg
RXhlY3V0YWJsZUJhc2UgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBzdGF0aWMg
dm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TZXRQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TZXRQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2V0UHJvdG90eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNyArMzMs
NyBAQCBjbGFzcyBTZXRQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GCiBwdWJsaWM6CiAg
ICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1By
b3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAg
IHN0YXRpYyBTZXRQcm90b3R5cGUqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5oCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAwOSwgMjAx
NS0yMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBWTTsKIGNsYXNzIEpTU3Ry
aW5nOwogY2xhc3MgU2xvdFZpc2l0b3I7CiAKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhTaW5n
bGVDaGFyYWN0ZXJTdHJpbmcgPSAweEZGOworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhT
aW5nbGVDaGFyYWN0ZXJTdHJpbmcgPSAweEZGOwogCiBjbGFzcyBTbWFsbFN0cmluZ3MgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFNtYWxsU3RyaW5ncyk7CkBAIC0xMjUsNyArMTI1LDcgQEAg
cHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2lu
Z2xlQ2hhcmFjdGVyU3RyaW5nQ291bnQgPSBtYXhTaW5nbGVDaGFyYWN0ZXJTdHJpbmcgKyAxOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nQ291bnQg
PSBtYXhTaW5nbGVDaGFyYWN0ZXJTdHJpbmcgKyAxOwogCiAgICAgdm9pZCBpbml0aWFsaXplKFZN
KiwgSlNTdHJpbmcqJiwgY29uc3QgY2hhciogdmFsdWUpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZh
bHVlTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03OSw3ICs3OSw3IEBAIHByaXZhdGU6CiBjbGFz
cyBTcGFyc2VBcnJheVZhbHVlTWFwIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6CiAg
ICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKICAgICAKIHByaXZhdGU6CiAgICAgdHlw
ZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBTcGFyc2VBcnJheUVudHJ5LCBXVEY6OkludEhhc2g8dWlu
dDY0X3Q+LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gTWFw
OwpAQCAtMTAzLDcgKzEwMyw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTcGFyc2VBcnJheVZh
bHVlTWFwKiBjcmVhdGUoVk0mKTsKICAgICAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rl
c3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVj
dGlvbiA9IHRydWU7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKICAgICAKICAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCos
IEpTVmFsdWUgcHJvdG90eXBlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ0NvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkg
UG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNy0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAg
LTMwLDcgKzMwLDcgQEAgY2xhc3MgR2V0dGVyU2V0dGVyOwogY2xhc3MgU3RyaW5nQ29uc3RydWN0
b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgU3Ry
aW5nQ29uc3RydWN0b3IqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBTdHJp
bmdQcm90b3R5cGUqIHN0cmluZ1Byb3RvdHlwZSwgR2V0dGVyU2V0dGVyKikKICAgICB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdJdGVyYXRvclByb3RvdHlwZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0l0ZXJh
dG9yUHJvdG90eXBlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlLCBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSwgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4uCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zMyw3ICszMyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogY2xhc3MgU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUgZmluYWwgOiBw
dWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFs
T2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgU3RyaW5nSXRlcmF0b3JQ
cm90b3R5cGUqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ09iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjgs
NyArMjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFN0cmluZ09iamVjdCA6IHB1YmxpYyBK
U1dyYXBwZXJPYmplY3QgewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU1dyYXBwZXJPYmpl
Y3Q7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcmNlcHRzR2V0
T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgT3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3QgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNO
b3RaZXJvIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKIAogICAgIHN0YXRpYyBTdHJpbmdP
YmplY3QqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQ
cm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJp
Z2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5
cmlnaHQgKEMpIDIwMDctMjAwOCwgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzUsNyArMzUsNyBAQCBwcml2YXRl
OgogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBTdHJpbmdPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhh
c1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJs
ZTsKIAogICAgIHN0YXRpYyBTdHJpbmdQcm90b3R5cGUqIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsMTEgKzY1LDExIEBAIHN0
cnVjdCBEdW1wQ29udGV4dDsKIC8vIFRoZSBvdXQtb2YtbGluZSBwcm9wZXJ0eSBzdG9yYWdlIGNh
cGFjaXR5IHRvIHVzZSB3aGVuIGZpcnN0IGFsbG9jYXRpbmcgb3V0LW9mLWxpbmUKIC8vIHN0b3Jh
Z2UuIE5vdGUgdGhhdCBhbGwgb2JqZWN0cyBzdGFydCBvdXQgd2l0aG91dCBoYXZpbmcgYW55IG91
dC1vZi1saW5lIHN0b3JhZ2U7CiAvLyB0aGlzIGNvbWVzIGludG8gcGxheSBvbmx5IG9uIHRoZSBm
aXJzdCBwcm9wZXJ0eSBzdG9yZSB0aGF0IGV4aGF1c3RzIGlubGluZSBzdG9yYWdlLgotc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGluaXRpYWxPdXRPZkxpbmVDYXBhY2l0eSA9IDQ7CitzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIGluaXRpYWxPdXRPZkxpbmVDYXBhY2l0eSA9IDQ7CiAKIC8vIFRoZSBm
YWN0b3IgYnkgd2hpY2ggdG8gZ3JvdyBvdXQtb2YtbGluZSBzdG9yYWdlIHdoZW4gaXQgaXMgZXho
YXVzdGVkLCBhZnRlciB0aGUKIC8vIGluaXRpYWwgYWxsb2NhdGlvbi4KLXN0YXRpYyBjb25zdCB1
bnNpZ25lZCBvdXRPZkxpbmVHcm93dGhGYWN0b3IgPSAyOworc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBvdXRPZkxpbmVHcm93dGhGYWN0b3IgPSAyOwogCiBzdHJ1Y3QgUHJvcGVydHlNYXBFbnRy
eSB7CiAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIGtleTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJs
aWM6CiAgICAgZnJpZW5kIGNsYXNzIFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZTsKIAogICAgIHR5
cGVkZWYgSlNDZWxsIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAgICAgCiAgICAgZW51bSBQb2x5UHJvdG9UYWcg
eyBQb2x5UHJvdG8gfTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGUoVk0mLCBKU0dsb2Jh
bE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYsIGNvbnN0IENsYXNz
SW5mbyosIEluZGV4aW5nVHlwZSA9IE5vbkFycmF5LCB1bnNpZ25lZCBpbmxpbmVDYXBhY2l0eSA9
IDApOwpAQCAtMjAxLDcgKzIwMSw3IEBAIHB1YmxpYzoKIAogICAgIEpTX0VYUE9SVF9QUklWQVRF
IFN0cnVjdHVyZSogZmxhdHRlbkRpY3Rpb25hcnlTdHJ1Y3R1cmUoVk0mLCBKU09iamVjdCopOwog
Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0YXRpYyB2
b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKICAgICAvLyBWZXJzaW9ucyB0aGF0IHRha2UgYSBmdW5j
IHdpbGwgY2FsbCBpdCBhZnRlciBtYWtpbmcgdGhlIGNoYW5nZSBidXQgd2hpbGUgc3RpbGwgaG9s
ZGluZwpAQCAtNjI3LDggKzYyNyw4IEBAIHByaXZhdGU6CiAKIHB1YmxpYzoKICNkZWZpbmUgREVG
SU5FX0JJVEZJRUxEKHR5cGUsIGxvd2VyTmFtZSwgdXBwZXJOYW1lLCB3aWR0aCwgb2Zmc2V0KSBc
Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNfIyNsb3dlck5hbWUjI1NoaWZ0ID0gb2Zmc2V0
O1wKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc18jI2xvd2VyTmFtZSMjTWFzayA9ICgoMSA8
PCAod2lkdGggLSAxKSkgfCAoKDEgPDwgKHdpZHRoIC0gMSkpIC0gMSkpO1wKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVpbnQzMl90IHNfIyNsb3dlck5hbWUjI1NoaWZ0ID0gb2Zmc2V0O1wKKyAgICBz
dGF0aWMgY29uc3RleHByIHVpbnQzMl90IHNfIyNsb3dlck5hbWUjI01hc2sgPSAoKDEgPDwgKHdp
ZHRoIC0gMSkpIHwgKCgxIDw8ICh3aWR0aCAtIDEpKSAtIDEpKTtcCiAgICAgdHlwZSBsb3dlck5h
bWUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDx0eXBlPigobV9iaXRGaWVsZCA+PiBvZmZz
ZXQpICYgc18jI2xvd2VyTmFtZSMjTWFzayk7IH1cCiAgICAgdm9pZCBzZXQjI3VwcGVyTmFtZSh0
eXBlIG5ld1ZhbHVlKSBcCiAgICAge1wKQEAgLTc0OCw4ICs3NDgsOCBAQCBwcml2YXRlOgogICAg
IAogICAgIHZvaWQgc3RhcnRXYXRjaGluZ0ludGVybmFsUHJvcGVydGllcyhWTSYpOwogCi0gICAg
c3RhdGljIGNvbnN0IGludCBzX21heFRyYW5zaXRpb25MZW5ndGggPSA2NDsKLSAgICBzdGF0aWMg
Y29uc3QgaW50IHNfbWF4VHJhbnNpdGlvbkxlbmd0aEZvck5vbkV2YWxQdXRCeUlkID0gNTEyOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IHNfbWF4VHJhbnNpdGlvbkxlbmd0aCA9IDY0OworICAg
IHN0YXRpYyBjb25zdGV4cHIgaW50IHNfbWF4VHJhbnNpdGlvbkxlbmd0aEZvck5vbkV2YWxQdXRC
eUlkID0gNTEyOwogCiAgICAgLy8gVGhlc2UgbmVlZCB0byBiZSBwcm9wZXJseSBhbGlnbmVkIGF0
IHRoZSBiZWdpbm5pbmcgb2YgdGhlICdTdHJ1Y3R1cmUnCiAgICAgLy8gcGFydCBvZiB0aGUgb2Jq
ZWN0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVD
aGFpbi5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmVDaGFpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgU3Ry
dWN0dXJlQ2hhaW4gZmluYWwgOiBwdWJsaWMgSlNDZQogCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFz
ZSA9IEpTQ2VsbDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
U3RydWN0dXJlSXNJbW1vcnRhbDsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmVDaGFpbiogY3JlYXRl
KFZNJiwgSlNPYmplY3QqKTsKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiogaGVhZCgpIHsg
cmV0dXJuIG1fdmVjdG9yLmdldCgpOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBPYmplY3RUb1N0cmluZ0FkYXB0aXZlU3Ry
dWN0dXJlV2F0CiBjbGFzcyBTdHJ1Y3R1cmVSYXJlRGF0YSBmaW5hbCA6IHB1YmxpYyBKU0NlbGwg
ewogcHVibGljOgogICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJ
c0ltbW9ydGFsOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+CiAgICAgc3RhdGljIElzb1N1
YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBTdHJ1Y3R1cmVSYXJlRGF0YSogY3JlYXRlKFZNJiwgU3RydWN0dXJlKik7CiAK
LSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAgICAgc3RhdGljIHZv
aWQgZGVzdHJveShKU0NlbGwqKTsKIAogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiwgU2xvdFZpc2l0b3ImKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVUcmFuc2l0aW9u
VGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IGNsYXNzIEpTQ2VsbDsKIGNsYXNzIFN0cnVjdHVyZTsKIAotc3RhdGljIGNvbnN0IHVuc2lnbmVk
IEZpcnN0SW50ZXJuYWxBdHRyaWJ1dGUgPSAxIDw8IDY7IC8vIFVzZSBmb3IgdHJhbnNpdGlvbnMg
dGhhdCBkb24ndCBoYXZlIHRvIGRvIHdpdGggcHJvcGVydHkgYWRkaXRpb25zLgorc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBGaXJzdEludGVybmFsQXR0cmlidXRlID0gMSA8PCA2OyAvLyBVc2Ug
Zm9yIHRyYW5zaXRpb25zIHRoYXQgZG9uJ3QgaGF2ZSB0byBkbyB3aXRoIHByb3BlcnR5IGFkZGl0
aW9ucy4KIAogLy8gU3VwcG9ydCBmb3IgYXR0cmlidXRlcyB1c2VkIHRvIGluZGljYXRlIHRyYW5z
aXRpb25zIG5vdCByZWxhdGVkIHRvIHByb3BlcnRpZXMuCiAvLyBJZiBhbnkgb2YgdGhlc2UgYXJl
IHVzZWQsIHRoZSBzdHJpbmcgcG9ydGlvbiBvZiB0aGUga2V5IHNob3VsZCBiZSAwLgpAQCAtMTQw
LDcgKzE0MCw3IEBAIGlubGluZSBib29sIHNldHNSZWFkT25seU9uTm9uQWNjZXNzb3JQcm8KIH0K
IAogY2xhc3MgU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlIHsKLSAgICBzdGF0aWMgY29uc3QgaW50
cHRyX3QgVXNpbmdTaW5nbGVTbG90RmxhZyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnRw
dHJfdCBVc2luZ1NpbmdsZVNsb3RGbGFnID0gMTsKIAogICAgIAogICAgIHN0cnVjdCBIYXNoIHsK
QEAgLTE1Niw3ICsxNTYsNyBAQCBjbGFzcyBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUgewogICAg
ICAgICAgICAgcmV0dXJuIGEgPT0gYjsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBjb25z
dCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICAgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsK
ICAgICB9OwogCiAgICAgdHlwZWRlZiBXZWFrR0NNYXA8SGFzaDo6S2V5LCBTdHJ1Y3R1cmUsIEhh
c2g+IFRyYW5zaXRpb25NYXA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
eW1ib2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1i
b2wuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3ltYm9sLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTYgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29t
Pi4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM0LDExICszNCwxMSBAQCBuYW1lc3BhY2UgSlNDIHsK
IGNsYXNzIFN5bWJvbCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogcHVibGljOgogICAgIHR5cGVk
ZWYgSlNDZWxsIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsIHwgT3ZlcnJpZGVz
VG9UaGlzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWwgfCBPdmVycmlkZXNUb1Ro
aXM7CiAKICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwogCi0gICAgc3RhdGljIGNvbnN0IGJvb2wg
bmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRz
RGVzdHJ1Y3Rpb24gPSB0cnVlOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29u
c3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
eW1ib2xDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPi4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM2LDcgKzM2LDcgQEAgY2xh
c3MgR2V0dGVyU2V0dGVyOwogY2xhc3MgU3ltYm9sQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMg
SW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9u
IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhh
c1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMgU3ltYm9sQ29uc3RydWN0b3IqIGNy
ZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBTeW1ib2xQcm90b3R5cGUqIHByb3Rv
dHlwZSwgR2V0dGVyU2V0dGVyKikKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TeW1ib2xQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6
dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzUsNyAr
MzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFN5bWJvbFByb3RvdHlwZSBmaW5hbCA6IHB1
YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxP
YmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBTeW1ib2xQcm90b3R5cGUq
IGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5
bWJvbFRhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3ltYm9sVGFibGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sVGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTItMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQz
Myw3ICs0MzMsNyBAQCBwcml2YXRlOgogfTsKIAogc3RydWN0IFN5bWJvbFRhYmxlSW5kZXhIYXNo
VHJhaXRzIDogSGFzaFRyYWl0czxTeW1ib2xUYWJsZUVudHJ5PiB7Ci0gICAgc3RhdGljIGNvbnN0
IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogfTsKIAogY2xhc3MgU3ltYm9sVGFibGUgZmluYWwg
OiBwdWJsaWMgSlNDZWxsIHsKQEAgLTQ0MSw3ICs0NDEsNyBAQCBjbGFzcyBTeW1ib2xUYWJsZSBm
aW5hbCA6IHB1YmxpYyBKU0NlbGwgCiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNl
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJ
c0ltbW9ydGFsOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1w
bD4sIFN5bWJvbFRhYmxlRW50cnksIElkZW50aWZpZXJSZXBIYXNoLCBIYXNoVHJhaXRzPFJlZlB0
cjxVbmlxdWVkU3RyaW5nSW1wbD4+LCBTeW1ib2xUYWJsZUluZGV4SGFzaFRyYWl0cz4gTWFwOwog
ICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+LCBHbG9iYWxWYXJp
YWJsZUlELCBJZGVudGlmaWVyUmVwSGFzaD4gVW5pcXVlSURNYXA7CkBAIC00NjIsNyArNDYyLDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gc3ltYm9sVGFibGU7CiAgICAgfQogICAgIAotICAg
IHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKICAgICBzdGF0aWMgdm9pZCBk
ZXN0cm95KEpTQ2VsbCopOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1wbGF0ZU9iamVjdERlc2Ny
aXB0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZW1w
bGF0ZU9iamVjdERlc2NyaXB0b3IuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVGVtcGxhdGVPYmplY3REZXNjcmlwdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1
a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC01OSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICBzdHJ1Y3QgSGFzaGVyIHsKICAgICAgICAg
c3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgVGVtcGxhdGVPYmplY3REZXNjcmlwdG9yJiBrZXkp
IHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3Qg
VGVtcGxhdGVPYmplY3REZXNjcmlwdG9yJiBhLCBjb25zdCBUZW1wbGF0ZU9iamVjdERlc2NyaXB0
b3ImIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZl
VG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9Owog
CiAgICAgc3RhdGljIHVuc2lnbmVkIGNhbGN1bGF0ZUhhc2goY29uc3QgU3RyaW5nVmVjdG9yJiBy
YXdTdHJpbmdzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9m
aWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlw
ZVByb2ZpbGVyLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw3ICszMyw3IEBACiBu
YW1lc3BhY2UgSlNDIHsKIAogbmFtZXNwYWNlIFR5cGVQcm9maWxlckludGVybmFsIHsKLXN0YXRp
YyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CiB9CiAKIFR5cGVQcm9maWxlcjo6VHlwZVByb2ZpbGVyKCkKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5oCShyZXZpc2lvbiAy
NDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIw
MTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC05MCw3ICs5MCw3IEBAIHN0cnVjdCBRdWVyeUtleSB7CiBzdHJ1Y3QgUXVl
cnlLZXlIYXNoIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBRdWVyeUtleSYga2V5
KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgUXVl
cnlLZXkmIGEsIGNvbnN0IFF1ZXJ5S2V5JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0
aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1
ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpAQCAtMTA0LDcgKzEwNCw3IEBAIHRlbXBsYXRl
PD4gc3RydWN0IERlZmF1bHRIYXNoPEpTQzo6UXVlcnkKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IEhhc2hUcmFpdHM7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPEpTQzo6UXVl
cnlLZXk+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6UXVlcnlLZXk+IHsKLSAgICBzdGF0
aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdURgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyTG9n
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJv
ZmlsZXJMb2cuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UeXBlUHJvZmlsZXJMb2cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcgKzM3LDcgQEAK
IG5hbWVzcGFjZSBKU0MgewogCiBuYW1lc3BhY2UgVHlwZVByb2ZpbGVyTG9nSW50ZXJuYWwgewot
c3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29s
IHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogVHlwZVByb2ZpbGVyTG9nOjpUeXBlUHJvZmlsZXJMb2co
Vk0mIHZtKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVmFyT2Zmc2V0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVmFyT2Zmc2V0LmgJ
KHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Zhck9m
ZnNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTIyMSw3ICsyMjEsNyBAQCBwcml2YXRlOgogc3RydWN0IFZh
ck9mZnNldEhhc2ggewogICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFZhck9mZnNldCYg
a2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CiAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3Qg
VmFyT2Zmc2V0JiBhLCBjb25zdCBWYXJPZmZzZXQmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAg
IHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQg
PSB0cnVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkBAIC0yMzcsNyArMjM3LDcgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpWYXJPZgogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlND
OjpWYXJPZmZzZXQ+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6VmFyT2Zmc2V0PiB7Ci0g
ICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9IZWFwVmVyaWZp
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9IZWFwVmVy
aWZpZXIuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9v
bHMvSGVhcFZlcmlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA4LDcgKzQwOCw3IEBAIHZv
aWQgSGVhcFZlcmlmaWVyOjpjaGVja0lmUmVjb3JkZWQoSGVhcEMKIHsKICAgICBib29sIGZvdW5k
ID0gZmFsc2U7CiAgICAgY29uc3QgY2hhciogY29uc3QgcHJlZml4ID0gIiAgIjsKLSAgICBzdGF0
aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
dmVyYm9zZSA9IHRydWU7CiAKICAgICBmb3IgKGludCBjeWNsZUluZGV4ID0gMDsgY3ljbGVJbmRl
eCA+IC1tX251bWJlck9mQ3ljbGVzOyBjeWNsZUluZGV4LS0pIHsKICAgICAgICAgR0NDeWNsZSYg
Y3ljbGUgPSBjeWNsZUZvckluZGV4KGN5Y2xlSW5kZXgpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NzksNyArMjc5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9i
amVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxz
ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOwog
CiAgICAgc3RhdGljIFNpbXBsZU9iamVjdCogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKICAgICB7CkBAIC0zMzIsNyArMzMyLDcgQEAgcHVibGljOgogCiAgICAg
REVDTEFSRV9JTkZPOwogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSB8IEpTQzo6T3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1
cmUgfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdDsKIAogICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKQEAgLTQwMCw3ICs0MDAsNyBAQCBwdWJsaWM6
CiAKICAgICBERUNMQVJFX0lORk87CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdDsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdDsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKQEAgLTQ3MSw3ICs0NzEsNyBAQCBwcml2YXRlOgog
Y2xhc3MgUnVudGltZUFycmF5IDogcHVibGljIEpTQXJyYXkgewogcHVibGljOgogICAgIHR5cGVk
ZWYgSlNBcnJheSBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVy
byB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVu
V2hlbkxlbmd0aElzTm90WmVybyB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiAKICAgICBz
dGF0aWMgUnVudGltZUFycmF5KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjKQogICAgIHsKQEAgLTQ5
Myw3ICs0OTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0YXRpY19jYXN0PFJ1bnRpbWVBcnJheSo+
KGNlbGwpLT5SdW50aW1lQXJyYXk6On5SdW50aW1lQXJyYXkoKTsKICAgICB9CiAKLSAgICBzdGF0
aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKIAogICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICB7CkBAIC01OTYs
NyArNTk2LDcgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogICAgIHR5cGVkZWYgSlNO
b25GaW5hbE9iamVjdCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKQEAgLTY0OCw3ICs2NDgsNyBAQCBwdWJs
aWM6CiAKICAgICBERUNMQVJFX0lORk87CiAgICAgdHlwZWRlZiBET01KSVROb2RlIEJhc2U7Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgewpAQCAtNzM5LDcgKzczOSw3IEBAIHB1YmxpYzoKIAogICAgIERFQ0xBUkVfSU5G
TzsKICAgICB0eXBlZGVmIERPTUpJVE5vZGUgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAK
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7CkBAIC04NTksNyAr
ODU5LDcgQEAgcHVibGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogICAgIHR5cGVkZWYgRE9NSklU
Tm9kZSBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG90eXBlKQogICAgIHsKQEAgLTkzOCw3ICs5MzgsNyBAQCBwdWJsaWM6CiAKICAg
ICBERUNMQVJFX0lORk87CiAgICAgdHlwZWRlZiBET01KSVROb2RlIEJhc2U7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ewpAQCAtOTk3LDcgKzk5Nyw3IEBAIHB1YmxpYzoKIAogICAgIERFQ0xBUkVfSU5GTzsKICAgICB1
c2luZyBCYXNlID0gRE9NSklUTm9kZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7CkBAIC0xMDk1LDcgKzEwOTUsNyBA
QCBwcml2YXRlOgogY2xhc3MgSlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyIDogcHVibGljIEpTTm9u
RmluYWxPYmplY3QgewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIEpTVGVzdEN1c3RvbUdldHRlclNldHRlcihW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVy
YXRvci5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21CM0lSR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNyBAQCB1
c2luZyBuYW1lc3BhY2UgQjM7CiAKIG5hbWVzcGFjZSB7CiBuYW1lc3BhY2UgV2FzbUIzSVJHZW5l
cmF0b3JJbnRlcm5hbCB7Ci1zdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0
aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogfQogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ5LDcgKzQ5LDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAK
IG5hbWVzcGFjZSBXYXNtQkJRUGxhbkludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJv
c2UgPSBmYWxzZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiAK
IEJCUVBsYW46OkJCUVBsYW4oQ29udGV4dCogY29udGV4dCwgUmVmPE1vZHVsZUluZm9ybWF0aW9u
PiBpbmZvLCBBc3luY1dvcmsgd29yaywgQ29tcGxldGlvblRhc2smJiB0YXNrLCBDcmVhdGVFbWJl
ZGRlcldyYXBwZXImJiBjcmVhdGVFbWJlZGRlcldyYXBwZXIsIFRocm93V2FzbUV4Y2VwdGlvbiB0
aHJvd1dhc21FeGNlcHRpb24pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
RmF1bHRTaWduYWxIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3LTIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
V2FzbSB7CiAKIG5hbWVzcGFjZSB7CiBuYW1lc3BhY2UgV2FzbUZhdWx0U2lnbmFsSGFuZGxlcklu
dGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK3N0YXRpYyBjb25z
dGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNlci5oCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIFZlY3RvcjxDb250cm9s
RW50cnk+JiBjb250cm9sU3RhY2soKSB7IHJldHVybiBtX2NvbnRyb2xTdGFjazsgfQogCiBwcml2
YXRlOgotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogCiAgICAgUGFydGlhbFJlc3VsdCBXQVJO
X1VOVVNFRF9SRVRVUk4gcGFyc2VCb2R5KCk7CiAgICAgUGFydGlhbFJlc3VsdCBXQVJOX1VOVVNF
RF9SRVRVUk4gcGFyc2VFeHByZXNzaW9uKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtT01HRm9yT1NSRW50cnlQbGFuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HRm9yT1NSRW50cnlQbGFuLmNwcAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR0Zvck9TUkVudHJ5UGxh
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgV2FzbSB7CiAKIG5hbWVzcGFjZSBXYXNtT01HRm9yT1NSRW50cnlQbGFuSW50ZXJu
YWwgewotc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhw
ciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIAogT01HRm9yT1NSRW50cnlQbGFuOjpPTUdGb3JP
U1JFbnRyeVBsYW4oQ29udGV4dCogY29udGV4dCwgUmVmPE1vZHVsZT4mJiBtb2R1bGUsIFJlZjxC
QlFDYWxsZWU+JiYgY2FsbGVlLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4LCB1aW50MzJfdCBsb29w
SW5kZXgsIE1lbW9yeU1vZGUgbW9kZSwgQ29tcGxldGlvblRhc2smJiB0YXNrKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmNwcAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNTEsNyArNTEsNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNt
IHsKIAogbmFtZXNwYWNlIFdhc21PTUdQbGFuSW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wg
dmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsK
IH0KIAogT01HUGxhbjo6T01HUGxhbihDb250ZXh0KiBjb250ZXh0LCBSZWY8TW9kdWxlPiYmIG1v
ZHVsZSwgdWludDMyX3QgZnVuY3Rpb25JbmRleCwgTWVtb3J5TW9kZSBtb2RlLCBDb21wbGV0aW9u
VGFzayYmIHRhc2spCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uY3Bw
CShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxh
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw3ICs0NSw3IEBACiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIFdhc20gewogCiBuYW1lc3BhY2UgV2FzbVBsYW5JbnRlcm5hbCB7Ci1zdGF0aWMg
Y29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwogfQogCiBQbGFuOjpQbGFuKENvbnRleHQqIGNvbnRleHQsIFJlZjxNb2R1bGVJ
bmZvcm1hdGlvbj4gaW5mbywgQ29tcGxldGlvblRhc2smJiB0YXNrLCBDcmVhdGVFbWJlZGRlcldy
YXBwZXImJiBjcmVhdGVFbWJlZGRlcldyYXBwZXIsIFRocm93V2FzbUV4Y2VwdGlvbiB0aHJvd1dh
c21FeGNlcHRpb24pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2lnbmF0
dXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2ln
bmF0dXJlLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVNpZ25hdHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw3ICszOCw3IEBAIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKIG5hbWVzcGFjZSB7CiBuYW1lc3BhY2Ug
V2FzbVNpZ25hdHVyZUludGVybmFsIHsKLXN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKK3N0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9CiB9CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TaWduYXR1cmUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2lnbmF0dXJlLmgJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TaWduYXR1cmUuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdHJ1Y3QgU2lnbmF0dXJlSGFzaCB7CiAg
ICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNpZ25hdHVyZUhhc2gmIHJocykgY29uc3QgeyByZXR1
cm4gZXF1YWwoKnRoaXMsIHJocyk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBTaWdu
YXR1cmVIYXNoJiBsaHMsIGNvbnN0IFNpZ25hdHVyZUhhc2gmIHJocykgeyByZXR1cm4gbGhzLmtl
eSA9PSByaHMua2V5IHx8IChsaHMua2V5ICYmIHJocy5rZXkgJiYgKmxocy5rZXkgPT0gKnJocy5r
ZXkpOyB9CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgU2lnbmF0dXJlSGFzaCYgc2ln
bmF0dXJlKSB7IHJldHVybiBzaWduYXR1cmUua2V5ID8gc2lnbmF0dXJlLmtleS0+aGFzaCgpIDog
MDsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5
T3JEZWxldGVkID0gZmFsc2U7CiAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIGtleS5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CiB9OwogCkBAIC0x
NDEsNyArMTQxLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpXYXNtOgog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKIHRlbXBsYXRlPD4gc3Ry
dWN0IEhhc2hUcmFpdHM8SlNDOjpXYXNtOjpTaWduYXR1cmVIYXNoPiA6IFNpbXBsZUNsYXNzSGFz
aFRyYWl0czxKU0M6Oldhc206OlNpZ25hdHVyZUhhc2g+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9v
bCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1w
dHlWYWx1ZUlzWmVybyA9IHRydWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmNwcAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zNCw3ICszNCw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20g
ewogCiBuYW1lc3BhY2UgV2FzbVdvcmtsaXN0SW50ZXJuYWwgewotc3RhdGljIGNvbnN0IGJvb2wg
dmVyYm9zZSA9IGZhbHNlOworc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsK
IH0KIAogY29uc3QgY2hhciogV29ya2xpc3Q6OnByaW9yaXR5U3RyaW5nKFByaW9yaXR5IHByaW9y
aXR5KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1i
bHkuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIGNsYXNzIEpTV2ViQXNzZW1ibHkgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7Ci0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3Bl
cnR5VGFibGU7CiAKICAgICBzdGF0aWMgSlNXZWJBc3NlbWJseSogY3JlYXRlKFZNJiwgSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNvZGVCbG9jay5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb2RlQmxvY2suaAko
cmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseUNvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNz
IFBsYW47CiBjbGFzcyBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrIGZpbmFsIDogcHVibGljIEpTQ2Vs
bCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVy
ZUlzSW1tb3J0YWw7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAogICAgIHN0
YXRpYyBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrKiBjcmVhdGUoVk0mLCBSZWY8V2FzbTo6Q29kZUJs
b2NrPiwgY29uc3QgV2FzbTo6TW9kdWxlSW5mb3JtYXRpb24mKTsKICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkKQEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrKFZNJiwgUmVmPFdhc206OkNvZGVCbG9jaz4mJiwg
Y29uc3QgV2FzbTo6TW9kdWxlSW5mb3JtYXRpb24mKTsKICAgICBERUNMQVJFX0VYUE9SVF9JTkZP
OwotICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKICAgICBzdGF0aWMg
dm9pZCBkZXN0cm95KEpTQ2VsbCopOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiwgU2xvdFZpc2l0b3ImKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3Ry
dWN0b3IuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3
LDcgKzM3LDcgQEAgY2xhc3MgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGU7CiBjbGFz
cyBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVy
bmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNl
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0
aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29u
c3RydWN0b3IqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSosIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9y
UHJvdG90eXBlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwg
SlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90
b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3
ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQ
cm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0
eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0
aWMgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUqIGNyZWF0ZShWTSYsIEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmgJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVu
Y3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAg
Y29uc3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3M7CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAgICAgc3Rh
dGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxU
eXBlLCBTdWJzcGFjZUFjY2VzcyBtb2RlPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9y
LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNyAr
MzksNyBAQCBjbGFzcyBXZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlOwogY2xhc3MgV2ViQXNz
ZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFsRnVuY3Rpb24g
ewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNlOwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRh
YmxlOwogCiAgICAgc3RhdGljIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3RvciogY3JlYXRl
KFZNJiwgU3RydWN0dXJlKiwgV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZSopOwogICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNW
YWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUlu
c3RhbmNlUHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90
eXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNz
IFdlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3Bl
cnR5VGFibGU7CiAKICAgICBzdGF0aWMgV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZSogY3Jl
YXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25z
dHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgV2ViQXNzZW1ibHlMaW5rRXJy
b3JQcm90b3R5cGU7CiBjbGFzcyBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yIGZpbmFs
IDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJu
YWxGdW5jdGlvbiBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIFdlYkFzc2VtYmx5
TGlua0Vycm9yQ29uc3RydWN0b3IqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSosIFdlYkFzc2VtYmx5
TGlua0Vycm9yUHJvdG90eXBlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yUHJvdG90eXBlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JQ
cm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JQcm90b3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3
ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgV2ViQXNzZW1ibHlMaW5rRXJyb3JQcm90
b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRh
YmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiAKICAgICBzdGF0aWMg
V2ViQXNzZW1ibHlMaW5rRXJyb3JQcm90b3R5cGUqIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZN
JiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9y
LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcgKzM3
LDcgQEAgY2xhc3MgV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGU7CiBjbGFzcyBXZWJBc3NlbWJs
eU1lbW9yeUNvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVi
bGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNlOwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwog
CiAgICAgc3RhdGljIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IqIGNyZWF0ZShWTSYsIFN0
cnVjdHVyZSosIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlKik7CiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90
eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlNZW1vcnlQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBXZWJBc3NlbWJs
eU1lbW9yeVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRp
Y1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIAog
ICAgIHN0YXRpYyBXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29u
c3RydWN0b3IuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NDAsNyArNDAsNyBAQCBjbGFzcyBXZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZTsKIGNsYXNzIFdl
YkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlv
biB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5
VGFibGU7CiAKICAgICBzdGF0aWMgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3RvciogY3JlYXRl
KFZNJiwgU3RydWN0dXJlKiwgV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUqKTsKICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFs
dWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1
bGVQcm90b3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBXZWJBc3Nl
bWJseU1vZHVsZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0
YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsK
IAogICAgIHN0YXRpYyBXZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZSogY3JlYXRlKFZNJiwgSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
UnVudGltZUVycm9yQ29uc3RydWN0b3IuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3JQcm90b3R5cGU7CiBjbGFzcyBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yIGZp
bmFsIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50
ZXJuYWxGdW5jdGlvbiBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogCiAgICAgc3RhdGljIFdlYkFzc2Vt
Ymx5UnVudGltZUVycm9yQ29uc3RydWN0b3IqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSosIFdlYkFz
c2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlKik7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVj
dCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5
VGFibGU7CiAKICAgICBzdGF0aWMgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUqIGNy
ZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1
Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlw
ZTsKIGNsYXNzIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRl
cm5hbEZ1bmN0aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFz
ZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSGFzU3Rh
dGljUHJvcGVydHlUYWJsZTsKIAogICAgIHN0YXRpYyBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0
b3IqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSosIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUqKTsK
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVj
dCosIEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlUYWJsZVByb3RvdHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuaAkocmV2aXNpb24gMjQ5OTc2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlw
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNs
YXNzIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEhhc1N0YXRpY1Byb3Bl
cnR5VGFibGU7CiAKICAgICBzdGF0aWMgV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZSogY3JlYXRl
KFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUb0pTQ2FsbGVlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUb0pT
Q2FsbGVlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5VG9KU0NhbGxlZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3
IEBAIGNsYXNzIEpTV2ViQXNzZW1ibHlNb2R1bGU7CiBjbGFzcyBXZWJBc3NlbWJseVRvSlNDYWxs
ZWUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcg
QmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgc3Rh
dGljIFdlYkFzc2VtYmx5VG9KU0NhbGxlZSogY3JlYXRlKFZNJiwgU3RydWN0dXJlKiwgSlNXZWJB
c3NlbWJseU1vZHVsZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShW
TSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUveWFyci9ZYXJyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIv
WWFyci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMCBQZXRlciBWYXJnYSAocHZhcmdhQGluZi51LXN6ZWdlZC5odSksIFVuaXZlcnNpdHkg
b2YgU3plZ2VkCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTQyLDEyICs0MiwxMiBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFlhcnIgewogI2RlZmluZSBZYXJyU3RhY2tTcGFj
ZUZvckJhY2tUcmFja0luZm9QYXJlbnRoZXNlcyA0CiAjZGVmaW5lIFlhcnJTdGFja1NwYWNlRm9y
RG90U3RhckVuY2xvc3VyZSAxCiAKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBxdWFudGlmeUluZmlu
aXRlID0gVUlOVF9NQVg7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgb2Zmc2V0Tm9NYXRjaCA9IHN0
ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKK3N0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgcXVhbnRpZnlJbmZpbml0ZSA9IFVJTlRfTUFYOworc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBvZmZzZXROb01hdGNoID0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgp
OwogCiAvLyBUaGUgYmVsb3cgbGltaXQgcmVzdHJpY3RzIHRoZSBudW1iZXIgb2YgInJlY3Vyc2l2
ZSIgbWF0Y2ggY2FsbHMgaW4gb3JkZXIgdG8KIC8vIGF2b2lkIHNwZW5kaW5nIGV4cG9uZW50aWFs
IHRpbWUgb24gY29tcGxleCByZWd1bGFyIGV4cHJlc3Npb25zLgotc3RhdGljIGNvbnN0IHVuc2ln
bmVkIG1hdGNoTGltaXQgPSAxMDAwMDAwOworc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtYXRj
aExpbWl0ID0gMTAwMDAwMDsKIAogZW51bSBKU1JlZ0V4cFJlc3VsdCB7CiAgICAgSlNSZWdFeHBN
YXRjaCA9IDEsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCShy
ZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2Vy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA5LCAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA5LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTE3LDcgKzExMTcsNyBAQCBwcml2YXRlOgog
ICAgIEhhc2hTZXQ8U3RyaW5nPiBtX2NhcHR1cmVHcm91cE5hbWVzOwogCiAgICAgLy8gRGVyaXZl
ZCBieSBlbXBpcmljYWwgdGVzdGluZyBvZiBjb21waWxlIHRpbWUgaW4gUENSRSBhbmQgV1JFQy4K
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgTUFYX1BBVFRFUk5fU0laRSA9IDEwMjQgKiAxMDI0
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgTUFYX1BBVFRFUk5fU0laRSA9IDEwMjQg
KiAxMDI0OwogfTsKIAogLyoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL2dlbmVy
YXRlWWFyckNhbm9uaWNhbGl6ZVVuaWNvZGUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvZ2VuZXJhdGVZYXJyQ2Fub25pY2FsaXplVW5pY29kZQkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvZ2VuZXJhdGVZYXJyQ2Fub25pY2Fs
aXplVW5pY29kZQkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKICMhIC91c3IvYmluL2Vu
diBweXRob24KIAotIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE2Miw3ICsxNjIsNyBA
QCBjbGFzcyBDYW5vbmljYWxpemU6CiAgICAgICAgICAgICBmaWxlLndyaXRlKCJjb25zdCBVQ2hh
cjMyIHVuaWNvZGVDaGFyYWN0ZXJTZXR7aW5kZXg6ZH1bXSA9IHt7IHtjaGFyYWN0ZXJzfTAgfX07
XG4iLmZvcm1hdChpbmRleD1pLCBjaGFyYWN0ZXJzPWNoYXJhY3RlcnMpKQogCiAgICAgICAgIGZp
bGUud3JpdGUoIlxuIikKLSAgICAgICAgZmlsZS53cml0ZSgic3RhdGljIGNvbnN0IHNpemVfdCBV
TklDT0RFX0NBTk9OSUNBTElaQVRJT05fU0VUUyA9IHtzZXRDb3VudDpkfTtcbiIuZm9ybWF0KHNl
dENvdW50PWxlbihjaGFyYWN0ZXJTZXRzKSkpCisgICAgICAgIGZpbGUud3JpdGUoInN0YXRpYyBj
b25zdGV4cHIgc2l6ZV90IFVOSUNPREVfQ0FOT05JQ0FMSVpBVElPTl9TRVRTID0ge3NldENvdW50
OmR9O1xuIi5mb3JtYXQoc2V0Q291bnQ9bGVuKGNoYXJhY3RlclNldHMpKSkKICAgICAgICAgZmls
ZS53cml0ZSgiY29uc3QgVUNoYXIzMiogY29uc3QgdW5pY29kZUNoYXJhY3RlclNldEluZm9bVU5J
Q09ERV9DQU5PTklDQUxJWkFUSU9OX1NFVFNdID0ge1xuIikKIAogICAgICAgICBmb3IgaSBpbiBy
YW5nZShsZW4oY2hhcmFjdGVyU2V0cykpOgpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTkt
MDktMTcgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBjb25z
dGV4cHIgaW5zdGVhZCBvZiBjb25zdCBpbiBzeW1ib2wgZGVmaW5pdGlvbnMgdGhhdCBhcmUgb2J2
aW91c2x5IGNvbnN0ZXhwci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMTg3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuY3BwOgorICAgICAgICAqIHd0Zi9BdXRvbWF0aWNU
aHJlYWQuY3BwOgorICAgICAgICAqIHd0Zi9CaXRWZWN0b3IuaDoKKyAgICAgICAgKiB3dGYvQml0
bWFwLmg6CisgICAgICAgICogd3RmL0Jsb29tRmlsdGVyLmg6CisgICAgICAgICogd3RmL0JyaWdh
bmQuaDoKKyAgICAgICAgKiB3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaDoKKyAgICAgICAgKiB3dGYv
Q3Jvc3NUaHJlYWRDb3BpZXIuaDoKKyAgICAgICAgKiB3dGYvQ3VycmVudFRpbWUuY3BwOgorICAg
ICAgICAqIHd0Zi9EYXRhTG9nLmNwcDoKKyAgICAgICAgKiB3dGYvRGF0ZU1hdGguY3BwOgorICAg
ICAgICAoV1RGOjpkYXlzRnJvbTE5NzBUb1llYXIpOgorICAgICAgICAqIHd0Zi9EZWZlcnJhYmxl
UmVmQ291bnRlZC5oOgorICAgICAgICAqIHd0Zi9HZXRQdHIuaDoKKyAgICAgICAgKiB3dGYvSGFz
aEZ1bmN0aW9ucy5oOgorICAgICAgICAqIHd0Zi9IYXNoTWFwLmg6CisgICAgICAgICogd3RmL0hh
c2hUYWJsZS5oOgorICAgICAgICAqIHd0Zi9IYXNoVHJhaXRzLmg6CisgICAgICAgICogd3RmL0pT
T05WYWx1ZXMuY3BwOgorICAgICAgICAqIHd0Zi9KU09OVmFsdWVzLmg6CisgICAgICAgICogd3Rm
L0xpc3RIYXNoU2V0Lmg6CisgICAgICAgICogd3RmL0xvY2suaDoKKyAgICAgICAgKiB3dGYvTG9j
a0FsZ29yaXRobS5oOgorICAgICAgICAqIHd0Zi9Mb2NrQWxnb3JpdGhtSW5saW5lcy5oOgorICAg
ICAgICAoV1RGOjpIb29rcz46OmxvY2tTbG93KToKKyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6Cisg
ICAgICAgICogd3RmL0xvZ2dlckhlbHBlci5oOgorICAgICAgICAoV1RGOjpMb2dnZXJIZWxwZXI6
OmNoaWxkTG9nSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogd3RmL01haW5UaHJlYWQuY3Bw
OgorICAgICAgICAqIHd0Zi9NZXRhQWxsb2NhdG9yUHRyLmg6CisgICAgICAgICogd3RmL01vbm90
b25pY1RpbWUuaDoKKyAgICAgICAgKiB3dGYvTmF0dXJhbExvb3BzLmg6CisgICAgICAgIChXVEY6
Ok5hdHVyYWxMb29wczo6TmF0dXJhbExvb3BzKToKKyAgICAgICAgKiB3dGYvT2JqZWN0SWRlbnRp
Zmllci5oOgorICAgICAgICAqIHd0Zi9SQU1TaXplLmNwcDoKKyAgICAgICAgKiB3dGYvUmVmLmg6
CisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAqIHd0Zi9SZXRhaW5QdHIuaDoKKyAg
ICAgICAgKiB3dGYvU2NoZWR1bGVQYWlyLmg6CisgICAgICAgICogd3RmL1N0YWNrU2hvdC5oOgor
ICAgICAgICAqIHd0Zi9TdGRMaWJFeHRyYXMuaDoKKyAgICAgICAgKiB3dGYvVGlueVB0clNldC5o
OgorICAgICAgICAqIHd0Zi9VUkwuY3BwOgorICAgICAgICAqIHd0Zi9VUkxIYXNoLmg6CisgICAg
ICAgICogd3RmL1VSTFBhcnNlci5jcHA6CisgICAgICAgIChXVEY6OlVSTFBhcnNlcjo6ZGVmYXVs
dFBvcnRGb3JQcm90b2NvbCk6CisgICAgICAgICogd3RmL1ZlY3Rvci5oOgorICAgICAgICAqIHd0
Zi9WZWN0b3JUcmFpdHMuaDoKKyAgICAgICAgKiB3dGYvV2FsbFRpbWUuaDoKKyAgICAgICAgKiB3
dGYvV2Vha0hhc2hTZXQuaDoKKyAgICAgICAgKiB3dGYvV29yZExvY2suaDoKKyAgICAgICAgKiB3
dGYvY29jb2EvQ1BVVGltZUNvY29hLmNwcDoKKyAgICAgICAgKiB3dGYvY29jb2EvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyQ29jb2EubW06CisgICAgICAgICogd3RmL3BlcnNpc3RlbmNlL1BlcnNpc3Rl
bnREZWNvZGVyLmg6CisgICAgICAgICogd3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRFbmNvZGVy
Lmg6CisgICAgICAgICogd3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaDoKKyAgICAgICAgKiB3dGYv
dGV4dC9DU3RyaW5nLmg6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHA6Cisg
ICAgICAgIChXVEY6OmV4cGFuZGVkQ2FwYWNpdHkpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmlu
Z0hhc2guaDoKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgICogd3Rm
L3RleHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oOgorICAgICAgICAoV1RGOjp0b0ludGVn
cmFsVHlwZSk6CisgICAgICAgICogd3RmL3RleHQvU3ltYm9sUmVnaXN0cnkuaDoKKyAgICAgICAg
KiB3dGYvdGV4dC9UZXh0U3RyZWFtLmNwcDoKKyAgICAgICAgKFdURjo6aGFzRnJhY3Rpb25zKToK
KyAgICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuaDoKKyAgICAgICAgKiB3dGYvdGV4dC9jb2Nv
YS9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVQ29jb2EuY3BwOgorCiAyMDE5LTA5LTE2ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVt
b3ZlICJnb3BoZXIiIGZyb20gbGlzdCBvZiBzcGVjaWFsIHNjaGVtZXMgaW4gVVJMUGFyc2VyCklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93
dGYvQXNzZXJ0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3OSw4ICsyNzksOCBAQCBwdWJs
aWM6CiAKIHZvaWQgV1RGUmVwb3J0QmFja3RyYWNlKCkKIHsKLSAgICBzdGF0aWMgY29uc3QgaW50
IGZyYW1lc1RvU2hvdyA9IDMxOwotICAgIHN0YXRpYyBjb25zdCBpbnQgZnJhbWVzVG9Ta2lwID0g
MjsKKyAgICBzdGF0aWMgY29uc3RleHByIGludCBmcmFtZXNUb1Nob3cgPSAzMTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGludCBmcmFtZXNUb1NraXAgPSAyOwogICAgIHZvaWQqIHNhbXBsZXNbZnJh
bWVzVG9TaG93ICsgZnJhbWVzVG9Ta2lwXTsKICAgICBpbnQgZnJhbWVzID0gZnJhbWVzVG9TaG93
ICsgZnJhbWVzVG9Ta2lwOwogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdGF0
aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CitzdGF0aWMgY29uc3RleHByIGJvb2wgdmVy
Ym9zZSA9IGZhbHNlOwogCiBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb246OmNyZWF0ZSgpCiB7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9CaXRWZWN0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9CaXRWZWN0b3IuaAkocmV2aXNpb24g
MjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvQml0VmVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE0LCAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNDg5LDcgKzQ4OSw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgQml0VmVjdG9ySGFzaCB7
CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgQml0VmVjdG9yJiB2ZWN0b3IpIHsgcmV0
dXJuIHZlY3Rvci5oYXNoKCk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBCaXRWZWN0
b3ImIGEsIGNvbnN0IEJpdFZlY3RvciYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGlj
IGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxz
ZTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBEZWZhdWx0SGFzaDsKSW5kZXg6
IFNvdXJjZS9XVEYvd3RmL0JpdG1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0Jp
dG1hcC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDEwLTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAx
MC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKQEAgLTEyMCwxNSArMTIwLDE1IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBoYXNoKCkgY29u
c3Q7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHdvcmRTaXplID0gc2l6
ZW9mKFdvcmRUeXBlKSAqIDg7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHdvcmRzID0gKGJp
dG1hcFNpemUgKyB3b3JkU2l6ZSAtIDEpIC8gd29yZFNpemU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCB3b3JkU2l6ZSA9IHNpemVvZihXb3JkVHlwZSkgKiA4OworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgd29yZHMgPSAoYml0bWFwU2l6ZSArIHdvcmRTaXplIC0gMSkgLyB3
b3JkU2l6ZTsKIAogICAgIC8vIHRoZSBsaXRlcmFsICcxJyBpcyBvZiB0eXBlIHNpZ25lZCBpbnQu
ICBXZSB3YW50IHRvIHVzZSBhbiB1bnNpZ25lZAogICAgIC8vIHZlcnNpb24gb2YgdGhlIGNvcnJl
Y3Qgc2l6ZSB3aGVuIGRvaW5nIHRoZSBjYWxjdWxhdGlvbnMgYmVjYXVzZSBpZgogICAgIC8vIFdv
cmRUeXBlIGlzIGxhcmdlciB0aGFuIGludCwgJzEgPDwgMzEnIHdpbGwgZmlyc3QgYmUgc2lnbiBl
eHRlbmRlZAogICAgIC8vIGFuZCB0aGVuIGNhc3RlZCB0byB1bnNpZ25lZCwgbWVhbmluZyB0aGF0
IHNldCgzMSkgd2hlbiBXb3JkVHlwZSBpcwogICAgIC8vIGEgNjQgYml0IHVuc2lnbmVkIGludCB3
b3VsZCBnaXZlIDB4ZmZmZjgwMDAKLSAgICBzdGF0aWMgY29uc3QgV29yZFR5cGUgb25lID0gMTsK
KyAgICBzdGF0aWMgY29uc3RleHByIFdvcmRUeXBlIG9uZSA9IDE7CiAKICAgICBzdGQ6OmFycmF5
PFdvcmRUeXBlLCB3b3Jkcz4gYml0czsKIH07CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9CbG9vbUZp
bHRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0Jsb29tRmlsdGVyLmgJKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL0Jsb29tRmlsdGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzgsNyArMzgsNyBAQCB0ZW1wbGF0ZSA8dW5zaWduZWQga2V5Qml0cz4KIGNsYXNz
IEJsb29tRmlsdGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3Qgc2l6ZV90IHRhYmxlU2l6ZSA9IDEgPDwga2V5Qml0czsKKyAgICBzdGF0
aWMgY29uc3RleHByIHNpemVfdCB0YWJsZVNpemUgPSAxIDw8IGtleUJpdHM7CiAKICAgICBCbG9v
bUZpbHRlcigpOwogCkBAIC02MSw4ICs2MSw4IEBAIHB1YmxpYzoKICAgICBib29sIG1heUNvbnRh
aW4oY29uc3QgU3RyaW5nJiBzdHJpbmcpIGNvbnN0IHsgcmV0dXJuIG1heUNvbnRhaW4oc3RyaW5n
LmltcGwoKS0+aGFzaCgpKTsgfQogCiBwcml2YXRlOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBiaXRzUGVyUG9zaXRpb24gPSA4ICogc2l6ZW9mKHVuc2lnbmVkKTsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQga2V5TWFzayA9ICgxIDw8IGtleUJpdHMpIC0gMTsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIGJpdHNQZXJQb3NpdGlvbiA9IDggKiBzaXplb2YodW5zaWduZWQpOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQga2V5TWFzayA9ICgxIDw8IGtleUJpdHMpIC0g
MTsKICAgICBzdGF0aWMgdW5zaWduZWQgYXJyYXlJbmRleCh1bnNpZ25lZCBrZXkpIHsgcmV0dXJu
IGtleSAvIGJpdHNQZXJQb3NpdGlvbjsgfQogICAgIHN0YXRpYyB1bnNpZ25lZCBiaXRNYXNrKHVu
c2lnbmVkIGtleSkgeyByZXR1cm4gMSA8PCAoa2V5ICUgYml0c1BlclBvc2l0aW9uKTsgfQogICAg
IHRlbXBsYXRlIDxzaXplX3QgaGFzaFNpemU+IHN0YXRpYyBzdGQ6OnBhaXI8dW5zaWduZWQsIHVu
c2lnbmVkPiBrZXlzRnJvbUhhc2goY29uc3Qgc3RkOjphcnJheTx1aW50OF90LCBoYXNoU2l6ZT4m
KTsKQEAgLTE1OCw3ICsxNTgsNyBAQCB0ZW1wbGF0ZSA8dW5zaWduZWQga2V5Qml0cz4KIGNsYXNz
IENvdW50aW5nQmxvb21GaWx0ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgdGFibGVTaXplID0gMSA8PCBrZXlCaXRzOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHRhYmxlU2l6ZSA9IDEgPDwga2V5Qml0czsKICAg
ICBzdGF0aWMgdW5zaWduZWQgbWF4aW11bUNvdW50KCkgeyByZXR1cm4gc3RkOjpudW1lcmljX2xp
bWl0czx1aW50OF90Pjo6bWF4KCk7IH0KICAgICAKICAgICBDb3VudGluZ0Jsb29tRmlsdGVyKCk7
CkBAIC0xODksNyArMTg5LDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGtleU1hc2sgPSAoMSA8PCBrZXlCaXRzKSAtIDE7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBrZXlNYXNrID0gKDEgPDwga2V5Qml0cykgLSAxOwogCiAg
ICAgdWludDhfdCYgZmlyc3RCdWNrZXQodW5zaWduZWQgaGFzaCkgeyByZXR1cm4gbV9idWNrZXRz
W2hhc2ggJiBrZXlNYXNrXTsgfQogICAgIHVpbnQ4X3QmIHNlY29uZEJ1Y2tldCh1bnNpZ25lZCBo
YXNoKSB7IHJldHVybiBtX2J1Y2tldHNbKGhhc2ggPj4gMTYpICYga2V5TWFza107IH0KSW5kZXg6
IFNvdXJjZS9XVEYvd3RmL0JyaWdhbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9C
cmlnYW5kLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL0JyaWdhbmQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjgyLDcgKzI4Miw3IEBAIG5hbWVzcGFjZSBkZXRhaWwKICAgICAg
ICAgc3RhdGljIGF1dG8gdGVzdChQICogcCkgLT4gZGVjbHR5cGUoQzo6YXQoKnApLCBzdGQ6OnRy
dWVfdHlwZSgpKTsKICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lLCB0eXBlbmFtZT4KICAgICAg
ICAgc3RhdGljIHN0ZDo6ZmFsc2VfdHlwZSB0ZXN0KC4uLik7Ci0gICAgICAgIHN0YXRpYyBjb25z
dCBib29sIHZhbHVlID0gc3RkOjppc19zYW1lPHN0ZDo6dHJ1ZV90eXBlLCBkZWNsdHlwZSh0ZXN0
PFQsIGR1bW15PihudWxscHRyKSk+Ojp2YWx1ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIHZhbHVlID0gc3RkOjppc19zYW1lPHN0ZDo6dHJ1ZV90eXBlLCBkZWNsdHlwZSh0ZXN0PFQs
IGR1bW15PihudWxscHRyKSk+Ojp2YWx1ZTsKICAgICB9OwogICAgIHRlbXBsYXRlIDxjbGFzcyBM
LCB0eXBlbmFtZSBJbmRleCwgYm9vbD4KICAgICBzdHJ1Y3QgYXRfZGlzcGF0Y2gKQEAgLTIyODYs
NyArMjI4Niw3IEBAIG5hbWVzcGFjZSBkZXRhaWwKICAgICAgICAgc3RhdGljIGF1dG8gdGVzdChQ
ICogcCkgLT4gZGVjbHR5cGUoQzo6ZXJhc2UodHlwZV88UD57fSksIHN0ZDo6dHJ1ZV90eXBlKCkp
OwogICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUsIHR5cGVuYW1lPgogICAgICAgICBzdGF0aWMg
c3RkOjpmYWxzZV90eXBlIHRlc3QoLi4uKTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFs
dWUgPSBzdGQ6OmlzX3NhbWU8c3RkOjp0cnVlX3R5cGUsIGRlY2x0eXBlKHRlc3Q8VCwgZHVtbXk+
KG51bGxwdHIpKT46OnZhbHVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmFsdWUg
PSBzdGQ6OmlzX3NhbWU8c3RkOjp0cnVlX3R5cGUsIGRlY2x0eXBlKHRlc3Q8VCwgZHVtbXk+KG51
bGxwdHIpKT46OnZhbHVlOwogICAgIH07CiAgICAgdGVtcGxhdGU8Y2xhc3MgTCwgY2xhc3MgSSwg
Ym9vbD4KICAgICBzdHJ1Y3QgZXJhc2VfZGlzcGF0Y2gKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0No
ZWNrZWRBcml0aG1ldGljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQ2hlY2tlZEFy
aXRobWV0aWMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvQ2hlY2tlZEFy
aXRobWV0aWMuaAkod29ya2luZyBjb3B5KQpAQCAtMjQyLDIyICsyNDIsMjIgQEAgdGVtcGxhdGUg
PHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgU291cgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
c3RydWN0IFJlbW92ZUNoZWNrZWQgewogICAgIHR5cGVkZWYgVCBDbGVhblR5cGU7Ci0gICAgc3Rh
dGljIGNvbnN0IENsZWFuVHlwZSBEZWZhdWx0VmFsdWUgPSAwOyAgICAKKyAgICBzdGF0aWMgY29u
c3RleHByIENsZWFuVHlwZSBEZWZhdWx0VmFsdWUgPSAwOwogfTsKIAogdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+IHN0cnVjdCBSZW1vdmVDaGVja2VkPENoZWNrZWQ8VCwgQ29uZGl0aW9uYWxDcmFzaE9u
T3ZlcmZsb3c+PiB7CiAgICAgdXNpbmcgQ2xlYW5UeXBlID0gdHlwZW5hbWUgUmVtb3ZlQ2hlY2tl
ZDxUPjo6Q2xlYW5UeXBlOwotICAgIHN0YXRpYyBjb25zdCBDbGVhblR5cGUgRGVmYXVsdFZhbHVl
ID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIENsZWFuVHlwZSBEZWZhdWx0VmFsdWUgPSAwOwog
fTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBSZW1vdmVDaGVja2VkPENoZWNrZWQ8
VCwgQ3Jhc2hPbk92ZXJmbG93Pj4gewogICAgIHR5cGVkZWYgdHlwZW5hbWUgUmVtb3ZlQ2hlY2tl
ZDxUPjo6Q2xlYW5UeXBlIENsZWFuVHlwZTsKLSAgICBzdGF0aWMgY29uc3QgQ2xlYW5UeXBlIERl
ZmF1bHRWYWx1ZSA9IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBDbGVhblR5cGUgRGVmYXVsdFZh
bHVlID0gMDsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgUmVtb3ZlQ2hlY2tl
ZDxDaGVja2VkPFQsIFJlY29yZE92ZXJmbG93Pj4gewogICAgIHR5cGVkZWYgdHlwZW5hbWUgUmVt
b3ZlQ2hlY2tlZDxUPjo6Q2xlYW5UeXBlIENsZWFuVHlwZTsKLSAgICBzdGF0aWMgY29uc3QgQ2xl
YW5UeXBlIERlZmF1bHRWYWx1ZSA9IDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBDbGVhblR5cGUg
RGVmYXVsdFZhbHVlID0gMDsKIH07CiAKIC8vIFRoZSBSZXN1bHRCYXNlIGFuZCBTaWduZWRuZXNz
U2VsZWN0b3IgYXJlIHVzZWQgdG8gd29ya2Fyb3VuZCB0eXBlb2Ygbm90IGJlaW5nCkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZENvcGllci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9X
VEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01
NCwxMSArNTQsMTEgQEAgc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZUhlbHBlciB7CiAgICAg
fTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBJc0VudW1PckNvbnZlcnRpYmxl
VG9JbnRlZ2VyIHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBzdGQ6OmlzX2lu
dGVncmFsPFQ+Ojp2YWx1ZSB8fCBzdGQ6OmlzX2VudW08VD46OnZhbHVlIHx8IHN0ZDo6aXNfY29u
dmVydGlibGU8VCwgbG9uZyBkb3VibGU+Ojp2YWx1ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIHZhbHVlID0gc3RkOjppc19pbnRlZ3JhbDxUPjo6dmFsdWUgfHwgc3RkOjppc19lbnVt
PFQ+Ojp2YWx1ZSB8fCBzdGQ6OmlzX2NvbnZlcnRpYmxlPFQsIGxvbmcgZG91YmxlPjo6dmFsdWU7
CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBJc1RocmVhZFNhZmVS
ZWZDb3VudGVkUG9pbnRlciB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gc3Rk
Ojppc19jb252ZXJ0aWJsZTx0eXBlbmFtZSBSZW1vdmVQb2ludGVyPFQ+OjpUeXBlKiwgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8dHlwZW5hbWUgUmVtb3ZlUG9pbnRlcjxUPjo6VHlwZT4qPjo6dmFsdWU7
CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2YWx1ZSA9IHN0ZDo6aXNfY29udmVydGli
bGU8dHlwZW5hbWUgUmVtb3ZlUG9pbnRlcjxUPjo6VHlwZSosIFRocmVhZFNhZmVSZWZDb3VudGVk
PHR5cGVuYW1lIFJlbW92ZVBvaW50ZXI8VD46OlR5cGU+Kj46OnZhbHVlOwogICAgIH07CiB9Owog
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi93dGYvQ3VycmVudFRpbWUuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
V1RGL3d0Zi9DdXJyZW50VGltZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KICAq
IENvcHlyaWdodCAoQykgMjAwOCBDYW1lcm9uIFp3YXJpY2ggPGN3endhcmljaEB1d2F0ZXJsb28u
Y2E+CkBAIC02OCw4ICs2OCw4IEBAIG5hbWVzcGFjZSBXVEYgewogI2lmIE9TKFdJTkRPV1MpCiAK
IC8vIE51bWJlciBvZiAxMDAgbmFub3NlY29uZCBiZXR3ZWVuIEphbnVhcnkgMSwgMTYwMSBhbmQg
SmFudWFyeSAxLCAxOTcwLgotc3RhdGljIGNvbnN0IFVMT05HTE9ORyBlcG9jaEJpYXMgPSAxMTY0
NDQ3MzYwMDAwMDAwMDBVTEw7Ci1zdGF0aWMgY29uc3QgZG91YmxlIGh1bmRyZWRzT2ZOYW5vc2Vj
b25kc1Blck1pbGxpc2Vjb25kID0gMTAwMDA7CitzdGF0aWMgY29uc3RleHByIFVMT05HTE9ORyBl
cG9jaEJpYXMgPSAxMTY0NDQ3MzYwMDAwMDAwMDBVTEw7CitzdGF0aWMgY29uc3RleHByIGRvdWJs
ZSBodW5kcmVkc09mTmFub3NlY29uZHNQZXJNaWxsaXNlY29uZCA9IDEwMDAwOwogCiBzdGF0aWMg
ZG91YmxlIGxvd1Jlc1VUQ1RpbWUoKQogewpJbmRleDogU291cmNlL1dURi93dGYvRGF0YUxvZy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvRGF0YUxvZy5jcHAJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL0RhdGFMb2cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUyLDcg
KzUyLDcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLXN0YXRpYyBjb25zdCBzaXplX3QgbWF4UGF0
aExlbmd0aCA9IDEwMjQ7CitzdGF0aWMgY29uc3RleHByIHNpemVfdCBtYXhQYXRoTGVuZ3RoID0g
MTAyNDsKIAogc3RhdGljIFByaW50U3RyZWFtKiBzX2ZpbGU7CiBzdGF0aWMgdWludDY0X3Qgc19m
aWxlRGF0YVsoc2l6ZW9mKEZpbGVQcmludFN0cmVhbSkgKyA3KSAvIDhdOwpJbmRleDogU291cmNl
L1dURi93dGYvRGF0ZU1hdGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0RhdGVN
YXRoLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5
OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDEwICZ5
ZXQsIExMQy4gKG5hdGVAYW5keWV0Lm5ldCkKQEAgLTEwOSwxMSArMTA5LDExIEBAIHRlbXBsYXRl
PHVuc2lnbmVkIGxlbmd0aD4gaW5saW5lIGJvb2wgc3QKIAogLyogQ29uc3RhbnRzICovCiAKLXN0
YXRpYyBjb25zdCBkb3VibGUgbWF4VW5peFRpbWUgPSAyMTQ1ODU5MjAwLjA7IC8vIDEyLzMxLzIw
MzcKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIG1heFVuaXhUaW1lID0gMjE0NTg1OTIwMC4wOyAv
LyAxMi8zMS8yMDM3CiAvLyBFQ01BU2NyaXB0IGFza3Mgbm90IHRvIHN1cHBvcnQgZm9yIGEgZGF0
ZSBvZiB3aGljaCB0b3RhbAogLy8gbWlsbGlzZWNvbmQgdmFsdWUgaXMgbGFyZ2VyIHRoYW4gdGhl
IGZvbGxvd2luZyB2YWx1ZS4KIC8vIFNlZSAxNS45LjEuMTQgb2YgRUNNQS0yNjIgNXRoIGVkaXRp
b24uCi1zdGF0aWMgY29uc3QgZG91YmxlIG1heEVDTUFTY3JpcHRUaW1lID0gOC42NEUxNTsKK3N0
YXRpYyBjb25zdGV4cHIgZG91YmxlIG1heEVDTUFTY3JpcHRUaW1lID0gOC42NEUxNTsKIAogLy8g
RGF5IG9mIHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250aCwgd2hlcmUgaW5kZXgg
MCBpcyBKYW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgogLy8gRmlyc3QgZm9yIG5vbi1s
ZWFwIHllYXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgpAQCAtMTU2LDkgKzE1Niw5IEBAIHN0YXRp
YyBpbmxpbmUgZG91YmxlIGRheXNGcm9tMTk3MFRvWWVhcigKICAgICAvLyBIb3dldmVyLCBldmVy
eSBodW5kcmVkdGggeWVhciBpcyBub3QgYSBsZWFwIHllYXIuICAxOTAwIGFuZCAyMTAwIGFyZSBu
b3QgbGVhcCB5ZWFycy4KICAgICAvLyBFdmVyeSBmb3VyIGh1bmRyZWQgeWVhcnMsIHRoZXJlJ3Mg
YSBsZWFwIHllYXIgYWZ0ZXIgYWxsLiAgMjAwMCBhbmQgMjQwMCBhcmUgbGVhcCB5ZWFycy4KIAot
ICAgIHN0YXRpYyBjb25zdCBpbnQgbGVhcERheXNCZWZvcmUxOTcxQnk0UnVsZSA9IDE5NzAgLyA0
OwotICAgIHN0YXRpYyBjb25zdCBpbnQgZXhjbHVkZWRMZWFwRGF5c0JlZm9yZTE5NzFCeTEwMFJ1
bGUgPSAxOTcwIC8gMTAwOwotICAgIHN0YXRpYyBjb25zdCBpbnQgbGVhcERheXNCZWZvcmUxOTcx
Qnk0MDBSdWxlID0gMTk3MCAvIDQwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIGludCBsZWFwRGF5
c0JlZm9yZTE5NzFCeTRSdWxlID0gMTk3MCAvIDQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQg
ZXhjbHVkZWRMZWFwRGF5c0JlZm9yZTE5NzFCeTEwMFJ1bGUgPSAxOTcwIC8gMTAwOworICAgIHN0
YXRpYyBjb25zdGV4cHIgaW50IGxlYXBEYXlzQmVmb3JlMTk3MUJ5NDAwUnVsZSA9IDE5NzAgLyA0
MDA7CiAKICAgICBjb25zdCBkb3VibGUgeWVhck1pbnVzT25lID0geWVhciAtIDE7CiAgICAgY29u
c3QgZG91YmxlIHllYXJzVG9BZGRCeTRSdWxlID0gZmxvb3IoeWVhck1pbnVzT25lIC8gNC4wKSAt
IGxlYXBEYXlzQmVmb3JlMTk3MUJ5NFJ1bGU7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9EZWZlcnJh
YmxlUmVmQ291bnRlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0RlZmVycmFibGVS
ZWZDb3VudGVkLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL0RlZmVycmFi
bGVSZWZDb3VudGVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsOCArMzgsOCBAQCBuYW1lc3BhY2UgV1RG
IHsKIC8vIHNvbWV0aW1lcyBldmVuIGZvciBzb21lIGFkZGl0aW9uYWwgZnVuY3Rpb25hbGl0eS4K
IAogY2xhc3MgRGVmZXJyYWJsZVJlZkNvdW50ZWRCYXNlIHsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgZGVmZXJyZWRGbGFnID0gMTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbm9ybWFs
SW5jcmVtZW50ID0gMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGRlZmVycmVkRmxh
ZyA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBub3JtYWxJbmNyZW1lbnQgPSAy
OwogCiBwdWJsaWM6CiAgICAgdm9pZCByZWYoKSBjb25zdApJbmRleDogU291cmNlL1dURi93dGYv
R2V0UHRyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvR2V0UHRyLmgJKHJldmlzaW9u
IDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL0dldFB0ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgSW5jLgorICogIENv
cHlyaWdodCAoQykgMjAwNi0yMDE5IEFwcGxlIEluYy4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0zMCw3ICszMCw3IEBAIGVudW0gSGFzaFRhYmxlRW1wdHlWYWx1ZVR5cGUgeyBIYXNoVGFibGUK
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgVCogZ2V0UHRyKFQqIHApIHsgcmV0dXJuIHA7
IH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBJc1NtYXJ0UHRyIHsKLSAgICBzdGF0
aWMgY29uc3QgYm9vbCB2YWx1ZSA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2
YWx1ZSA9IGZhbHNlOwogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQsIGJvb2wgaXNTbWFydFB0
cj4KQEAgLTY3LDcgKzY3LDcgQEAgaW5saW5lIHR5cGVuYW1lIEdldFB0ckhlbHBlcjxUPjo6UHRy
VHlwZQogLy8gRXhwbGljaXQgc3BlY2lhbGl6YXRpb24gZm9yIEMrKyBzdGFuZGFyZCBsaWJyYXJ5
IHR5cGVzLgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgRGVsZXRlcj4gc3RydWN0
IElzU21hcnRQdHI8c3RkOjp1bmlxdWVfcHRyPFQsIERlbGV0ZXI+PiB7Ci0gICAgc3RhdGljIGNv
bnN0IGJvb2wgdmFsdWUgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2YWx1ZSA9
IHRydWU7CiB9OwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgRGVsZXRlcj4KSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL0hhc2hGdW5jdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9IYXNoRnVuY3Rpb25zLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYv
d3RmL0hhc2hGdW5jdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMDIsNyArMTAyLDcgQEAgbmFtZXNw
YWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEludEhhc2ggewogICAg
ICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChUIGtleSkgeyByZXR1cm4gaW50SGFzaChzdGF0aWNf
Y2FzdDx0eXBlbmFtZSBJbnRUeXBlczxzaXplb2YoVCk+OjpVbnNpZ25lZFR5cGU+KGtleSkpOyB9
CiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKFQgYSwgVCBiKSB7IHJldHVybiBhID09IGI7IH0K
LSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQg
PSB0cnVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1w
dHlPckRlbGV0ZWQgPSB0cnVlOwogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgRmxvYXRIYXNoIHsKQEAgLTExNSw3ICsxMTUsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAg
ICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxCaXRzPihhKSA9PSBiaXR3
aXNlX2Nhc3Q8Qml0cz4oYik7CiAgICAgICAgIH0KLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgICAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogICAgIH07
CiAKICAgICAvLyBwb2ludGVyIGlkZW50aXR5IGhhc2ggZnVuY3Rpb24KQEAgLTEyOSw3ICsxMjks
NyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChQdHJU
eXBlIGtleSkgeyByZXR1cm4gSW50SGFzaDx1aW50cHRyX3Q+OjpoYXNoKHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90PihrZXkpKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChQdHJUeXBl
IGEsIFB0clR5cGUgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgICAgIHN0YXRpYyBjb25zdCBi
b29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICAgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKICAg
ICB9OwogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CkBAIC0xMzgsNyArMTM4LDcgQEAgbmFt
ZXNwYWNlIFdURiB7CiAKICAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goUHRyVHlwZSBrZXkp
IHsgcmV0dXJuIEludEhhc2g8dWludHB0cl90Pjo6aGFzaChyZWludGVycHJldF9jYXN0PHVpbnRw
dHJfdD4oa2V5KSk7IH0KICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoUHRyVHlwZSBhLCBQdHJU
eXBlIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZl
VG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiAKICAgICAgICAg
c3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgVCYga2V5KSB7IHJldHVybiBoYXNoKGdldFB0cihr
ZXkpKTsgfQogICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBUJiBhLCBjb25zdCBUJiBi
KSB7IHJldHVybiBnZXRQdHIoYSkgPT0gZ2V0UHRyKGIpOyB9CkBAIC0xNTAsNyArMTUwLDcgQEAg
bmFtZXNwYWNlIFdURiB7CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFA+IHN0cnVj
dCBQdHJIYXNoPFJlZjxQPj4gOiBQdHJIYXNoQmFzZTxSZWY8UD4sIElzU21hcnRQdHI8UmVmPFA+
Pjo6dmFsdWU+IHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1w
dHlPckRlbGV0ZWQgPSBmYWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVU
b0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CiAgICAgfTsKIAogICAgIC8vIGRlZmF1
bHQgaGFzaCBmdW5jdGlvbiBmb3IgZWFjaCB0eXBlCkBAIC0xNjYsMTMgKzE2NiwxMyBAQCBuYW1l
c3BhY2UgV1RGIHsKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIERlZmF1bHRIYXNoPFQ+
OjpIYXNoOjplcXVhbChhLmZpcnN0LCBiLmZpcnN0KSAmJiBEZWZhdWx0SGFzaDxVPjo6SGFzaDo6
ZXF1YWwoYS5zZWNvbmQsIGIuc2Vjb25kKTsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgY29u
c3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IERlZmF1bHRIYXNoPFQ+OjpI
YXNoOjpzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCAmJiBEZWZhdWx0SGFzaDxVPjo6SGFz
aDo6c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQ7CisgICAgICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IERlZmF1bHRIYXNoPFQ+OjpI
YXNoOjpzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCAmJiBEZWZhdWx0SGFzaDxVPjo6SGFz
aDo6c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQ7CiAgICAgfTsKIAogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHN0cnVjdCBJbnRQYWlySGFzaCB7CiAgICAgICAgIHN0
YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IHN0ZDo6cGFpcjxULCBVPiYgcCkgeyByZXR1cm4gcGFp
ckludEhhc2gocC5maXJzdCwgcC5zZWNvbmQpOyB9CiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFs
KGNvbnN0IHN0ZDo6cGFpcjxULCBVPiYgYSwgY29uc3Qgc3RkOjpwYWlyPFQsIFU+JiBiKSB7IHJl
dHVybiBQYWlySGFzaDxULCBUPjo6ZXF1YWwoYSwgYik7IH0KLSAgICAgICAgc3RhdGljIGNvbnN0
IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBQYWlySGFzaDxULCBVPjo6c2Fm
ZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQ7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IFBhaXJIYXNoPFQsIFU+OjpzYWZlVG9D
b21wYXJlVG9FbXB0eU9yRGVsZXRlZDsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUu
Li4gVHlwZXM+CkBAIC0yMTEsNyArMjExLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBhbGxUcnVlKEJvb2xUeXBlIHZhbHVlKSB7IHJldHVybiB2YWx1
ZTsgfQogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCb29sVHlwZSwgdHlwZW5hbWUuLi4gQm9v
bFR5cGVzPgogICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgYWxsVHJ1ZShCb29sVHlwZSB2
YWx1ZSwgQm9vbFR5cGVzLi4uIHZhbHVlcykgeyByZXR1cm4gdmFsdWUgJiYgYWxsVHJ1ZSh2YWx1
ZXMuLi4pOyB9Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5
T3JEZWxldGVkID0gYWxsVHJ1ZShEZWZhdWx0SGFzaDxUeXBlcz46Okhhc2g6OnNhZmVUb0NvbXBh
cmVUb0VtcHR5T3JEZWxldGVkLi4uKTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNh
ZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gYWxsVHJ1ZShEZWZhdWx0SGFzaDxUeXBlcz46
Okhhc2g6OnNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkLi4uKTsKICAgICB9OwogCiAgICAg
Ly8gbWFrZSBJbnRIYXNoIHRoZSBkZWZhdWx0IGhhc2ggZnVuY3Rpb24gZm9yIG1hbnkgaW50ZWdl
ciB0eXBlcwpJbmRleDogU291cmNlL1dURi93dGYvSGFzaE1hcC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL0hhc2hNYXAuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93
dGYvSGFzaE1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNS0yMDA4LCAyMDExLCAyMDEzLCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzksNyArMzksNyBAQCBwcml2
YXRlOgogICAgIHVzaW5nIE1hcHBlZFRyYWl0cyA9IE1hcHBlZFRyYWl0c0FyZzsKIAogICAgIHN0
cnVjdCBLZXlWYWx1ZVBhaXJUcmFpdHMgOiBLZXlWYWx1ZVBhaXJIYXNoVHJhaXRzPEtleVRyYWl0
cywgTWFwcGVkVHJhaXRzPiB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGhhc0lzRW1wdHlW
YWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGhhc0lz
RW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKICAgICAgICAgc3RhdGljIGJvb2wgaXNFbXB0eVZh
bHVlKGNvbnN0IHR5cGVuYW1lIEtleVZhbHVlUGFpckhhc2hUcmFpdHM8S2V5VHJhaXRzLCBNYXBw
ZWRUcmFpdHM+OjpUcmFpdFR5cGUmIHZhbHVlKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1
cm4gaXNIYXNoVHJhaXRzRW1wdHlWYWx1ZTxLZXlUcmFpdHM+KHZhbHVlLmtleSk7CkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9I
YXNoVGFibGUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvSGFzaFRhYmxl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDExLCAyMDEyLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBEYXZpZCBMZXZpbiA8bGV2
aW5AY2hyb21pdW0ub3JnPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTUxOCw4ICs1MTgsOCBAQCBuYW1lc3Bh
Y2UgV1RGIHsKICAgICAgICAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZUl0ZXJhdG9ycygpIHsgfQog
I2VuZGlmCiAKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1fbWF4TG9hZCA9IDI7Ci0g
ICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtX21pbkxvYWQgPSA2OworICAgICAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIG1fbWF4TG9hZCA9IDI7CisgICAgICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgbV9taW5Mb2FkID0gNjsKIAogICAgICAgICBWYWx1ZVR5cGUqIG1fdGFi
bGU7CiAgICAgICAgIHVuc2lnbmVkIG1fdGFibGVTaXplOwpAQCAtNTQ1LDE2ICs1NDUsMTYgQEAg
bmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dW5zaWduZWQgc2l6ZT4gc3RydWN0IE9uZWlm
eUxvd0JpdHM7CiAgICAgdGVtcGxhdGU8PgogICAgIHN0cnVjdCBPbmVpZnlMb3dCaXRzPDA+IHsK
LSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gMDsKKyAgICAgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCB2YWx1ZSA9IDA7CiAgICAgfTsKICAgICB0ZW1wbGF0ZTx1bnNp
Z25lZCBudW1iZXI+CiAgICAgc3RydWN0IE9uZWlmeUxvd0JpdHMgewotICAgICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgdmFsdWUgPSBudW1iZXIgfCBPbmVpZnlMb3dCaXRzPChudW1iZXIgPj4g
MSk+Ojp2YWx1ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB2YWx1ZSA9IG51
bWJlciB8IE9uZWlmeUxvd0JpdHM8KG51bWJlciA+PiAxKT46OnZhbHVlOwogICAgIH07CiAgICAg
Ly8gQ29tcHV0ZSB0aGUgZmlyc3QgcG93ZXIgb2YgdHdvIGludGVnZXIgdGhhdCBpcyBhbiB1cHBl
ciBib3VuZCBvZiB0aGUgcGFyYW1ldGVyICdudW1iZXInLgogICAgIHRlbXBsYXRlPHVuc2lnbmVk
IG51bWJlcj4KICAgICBzdHJ1Y3QgVXBwZXJQb3dlck9mVHdvQm91bmQgewotICAgICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSAoT25laWZ5TG93Qml0czxudW1iZXIgLSAxPjo6dmFs
dWUgKyAxKSAqIDI7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgdmFsdWUgPSAo
T25laWZ5TG93Qml0czxudW1iZXIgLSAxPjo6dmFsdWUgKyAxKSAqIDI7CiAgICAgfTsKIAogICAg
IC8vIEJlY2F1c2UgcG93ZXIgb2YgdHdvIG51bWJlcnMgYXJlIHRoZSBsaW1pdCBvZiBtYXhMb2Fk
LCB0aGVpciBjYXBhY2l0eSBpcyB0d2ljZSB0aGUKQEAgLTU2MiwxOCArNTYyLDE4IEBAIG5hbWVz
cGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHVuc2lnbmVkIHNpemUsIGJvb2wgaXNQb3dlck9mVHdv
PiBzdHJ1Y3QgSGFzaFRhYmxlQ2FwYWNpdHlGb3JTaXplU3BsaXR0ZXI7CiAgICAgdGVtcGxhdGU8
dW5zaWduZWQgc2l6ZT4KICAgICBzdHJ1Y3QgSGFzaFRhYmxlQ2FwYWNpdHlGb3JTaXplU3BsaXR0
ZXI8c2l6ZSwgdHJ1ZT4gewotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmFsdWUgPSBz
aXplICogNDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB2YWx1ZSA9IHNpemUg
KiA0OwogICAgIH07CiAgICAgdGVtcGxhdGU8dW5zaWduZWQgc2l6ZT4KICAgICBzdHJ1Y3QgSGFz
aFRhYmxlQ2FwYWNpdHlGb3JTaXplU3BsaXR0ZXI8c2l6ZSwgZmFsc2U+IHsKLSAgICAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gVXBwZXJQb3dlck9mVHdvQm91bmQ8c2l6ZT46OnZh
bHVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZhbHVlID0gVXBwZXJQb3dl
ck9mVHdvQm91bmQ8c2l6ZT46OnZhbHVlOwogICAgIH07CiAKICAgICAvLyBIYXNoVGFibGVDYXBh
Y2l0eUZvclNpemUgY29tcHV0ZXMgdGhlIHVwcGVyIHBvd2VyIG9mIHR3byBjYXBhY2l0eSB0byBo
b2xkIHRoZSBzaXplIHBhcmFtZXRlci4KICAgICAvLyBUaGlzIGlzIGRvbmUgYXQgY29tcGlsZSB0
aW1lIHRvIGluaXRpYWxpemUgdGhlIEhhc2hUcmFpdHMuCiAgICAgdGVtcGxhdGU8dW5zaWduZWQg
c2l6ZT4KICAgICBzdHJ1Y3QgSGFzaFRhYmxlQ2FwYWNpdHlGb3JTaXplIHsKLSAgICAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gSGFzaFRhYmxlQ2FwYWNpdHlGb3JTaXplU3BsaXR0
ZXI8c2l6ZSwgIShzaXplICYgKHNpemUgLSAxKSk+Ojp2YWx1ZTsKKyAgICAgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCB2YWx1ZSA9IEhhc2hUYWJsZUNhcGFjaXR5Rm9yU2l6ZVNwbGl0dGVy
PHNpemUsICEoc2l6ZSAmIChzaXplIC0gMSkpPjo6dmFsdWU7CiAgICAgICAgIENPTVBJTEVfQVNT
RVJUKHNpemUgPiAwLCBIYXNoVGFibGVOb25aZXJvTWluaW11bUNhcGFjaXR5KTsKICAgICAgICAg
Q09NUElMRV9BU1NFUlQoIXN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSA+PiAzMSksIEhhc2hU
YWJsZU5vQ2FwYWNpdHlPdmVyZmxvdyk7CiAgICAgICAgIENPTVBJTEVfQVNTRVJUKHZhbHVlID4g
KDIgKiBzaXplKSwgSGFzaFRhYmxlQ2FwYWNpdHlIb2xkc0NvbnRlbnRTaXplKTsKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL0hhc2hUcmFpdHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9I
YXNoVHJhaXRzLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL0hhc2hUcmFp
dHMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTM4LDI0ICszOCwyNCBAQCB0ZW1wbGF0ZTxib29sIGlzSW50ZWdlciwgdHlw
ZW5hbWUgVD4gc3RyCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBHZW5lcmljSGFzaFRy
YWl0c0Jhc2U8ZmFsc2UsIFQ+IHsKICAgICAvLyBUaGUgZW1wdHlWYWx1ZUlzWmVybyBmbGFnIGlz
IHVzZWQgdG8gb3B0aW1pemUgYWxsb2NhdGlvbiBvZiBlbXB0eSBoYXNoIHRhYmxlcyB3aXRoIHpl
cm9lZCBtZW1vcnkuCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZh
bHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gZmFsc2U7
CiAKICAgICAvLyBUaGUgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gZmxhZyBhbGxvd3MgdGhlIGhh
c2ggdGFibGUgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBjb2RlIHRvIGNoZWNrCiAgICAgLy8g
Zm9yIHRoZSBlbXB0eSB2YWx1ZSB3aGVuIGl0IGNhbiBiZSBkb25lIHdpdGggdGhlIGVxdWFsaXR5
IG9wZXJhdG9yLCBidXQgYWxsb3dzIGN1c3RvbSBmdW5jdGlvbnMKICAgICAvLyBmb3IgY2FzZXMg
bGlrZSBTdHJpbmcgdGhhdCBuZWVkIHRoZW0uCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgaGFzSXNF
bXB0eVZhbHVlRnVuY3Rpb24gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaGFz
SXNFbXB0eVZhbHVlRnVuY3Rpb24gPSBmYWxzZTsKIAogICAgIC8vIFVzZWQgYnkgV2Vha1B0ciB0
byBpbmRpY2F0ZSB0aGF0IHRoZSB2YWx1ZSBtYXkgYmVjb21lIGRlbGV0ZWQgd2l0aG91dCBiZWlu
ZyBleHBsaWNpdGx5IHJlbW92ZWQuCi0gICAgc3RhdGljIGNvbnN0IGJvb2wgaGFzSXNSZWxlYXNl
ZFdlYWtWYWx1ZUZ1bmN0aW9uID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGhh
c0lzUmVsZWFzZWRXZWFrVmFsdWVGdW5jdGlvbiA9IGZhbHNlOwogCiAgICAgLy8gVGhlIHN0YXJ0
aW5nIHRhYmxlIHNpemUuIENhbiBiZSBvdmVycmlkZGVuIHdoZW4gd2Uga25vdyBiZWZvcmVoYW5k
IHRoYXQKICAgICAvLyBhIGhhc2ggdGFibGUgd2lsbCBoYXZlIGF0IGxlYXN0IE4gZW50cmllcy4K
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWluaW11bVRhYmxlU2l6ZSA9IDg7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtaW5pbXVtVGFibGVTaXplID0gODsKIH07CiAKIC8vIERl
ZmF1bHQgaW50ZWdlciB0cmFpdHMgZGlzYWxsb3cgYm90aCAwIGFuZCAtMSBhcyBrZXlzIChtYXgg
dmFsdWUgaW5zdGVhZCBvZiAtMSBmb3IgdW5zaWduZWQpLgogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IEdlbmVyaWNIYXNoVHJhaXRzQmFzZTx0cnVlLCBUPiA6IEdlbmVyaWNIYXNoVHJhaXRz
QmFzZTxmYWxzZSwgVD4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8g
PSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1
ZTsKICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoVCYgc2xvdCkgeyBzbG90
ID0gc3RhdGljX2Nhc3Q8VD4oLTEpOyB9CiAgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUo
VCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgPT0gc3RhdGljX2Nhc3Q8VD4oLTEpOyB9CiB9OwpAQCAt
OTksMTQgKzk5LDE0IEBAIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8ZG91YmxlPiA6IEYK
IAogLy8gRGVmYXVsdCB1bnNpZ25lZCB0cmFpdHMgZGlzYWxsb3cgYm90aCAwIGFuZCBtYXggYXMg
a2V5cyAtLSB1c2UgdGhlc2UgdHJhaXRzIHRvIGFsbG93IHplcm8gYW5kIGRpc2FsbG93IG1heCAt
IDEuCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgVW5zaWduZWRXaXRoWmVyb0tleUhhc2hU
cmFpdHMgOiBHZW5lcmljSGFzaFRyYWl0czxUPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1w
dHlWYWx1ZUlzWmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZh
bHVlSXNaZXJvID0gZmFsc2U7CiAgICAgc3RhdGljIFQgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHN0
ZDo6bnVtZXJpY19saW1pdHM8VD46Om1heCgpOyB9CiAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0
RGVsZXRlZFZhbHVlKFQmIHNsb3QpIHsgc2xvdCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1h
eCgpIC0gMTsgfQogICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKFQgdmFsdWUpIHsgcmV0
dXJuIHZhbHVlID09IHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1heCgpIC0gMTsgfQogfTsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0cyA6
IEdlbmVyaWNIYXNoVHJhaXRzPFQ+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVl
SXNaZXJvID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1pl
cm8gPSBmYWxzZTsKICAgICBzdGF0aWMgVCBlbXB0eVZhbHVlKCkgeyByZXR1cm4gc3RkOjpudW1l
cmljX2xpbWl0czxUPjo6bWluKCk7IH0KICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVk
VmFsdWUoVCYgc2xvdCkgeyBzbG90ID0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KCk7IH0K
ICAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShUIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA9
PSBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptYXgoKTsgfQpAQCAtMTE1LDE0ICsxMTUsMTQgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFNpZ25lZFdpdGhaZQogLy8gQ2FuIGJlIHVzZWQg
d2l0aCBzdHJvbmcgZW51bXMsIGFsbG93cyB6ZXJvIGFzIGtleS4KIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHN0cnVjdCBTdHJvbmdFbnVtSGFzaFRyYWl0cyA6IEdlbmVyaWNIYXNoVHJhaXRzPFQ+IHsK
ICAgICB1c2luZyBVbmRlcmx5aW5nVHlwZSA9IHR5cGVuYW1lIHN0ZDo6dW5kZXJseWluZ190eXBl
PFQ+Ojp0eXBlOwotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxz
ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IGZhbHNlOwog
ICAgIHN0YXRpYyBUIGVtcHR5VmFsdWUoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxUPihzdGQ6Om51
bWVyaWNfbGltaXRzPFVuZGVybHlpbmdUeXBlPjo6bWF4KCkpOyB9CiAgICAgc3RhdGljIHZvaWQg
Y29uc3RydWN0RGVsZXRlZFZhbHVlKFQmIHNsb3QpIHsgc2xvdCA9IHN0YXRpY19jYXN0PFQ+KHN0
ZDo6bnVtZXJpY19saW1pdHM8VW5kZXJseWluZ1R5cGU+OjptYXgoKSAtIDEpOyB9CiAgICAgc3Rh
dGljIGJvb2wgaXNEZWxldGVkVmFsdWUoVCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgPT0gc3RhdGlj
X2Nhc3Q8VD4oc3RkOjpudW1lcmljX2xpbWl0czxVbmRlcmx5aW5nVHlwZT46Om1heCgpIC0gMSk7
IH0KIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFA+IHN0cnVjdCBIYXNoVHJhaXRzPFAqPiA6IEdl
bmVyaWNIYXNoVHJhaXRzPFAqPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlz
WmVybyA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8g
PSB0cnVlOwogICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShQKiYgc2xvdCkg
eyBzbG90ID0gcmVpbnRlcnByZXRfY2FzdDxQKj4oLTEpOyB9CiAgICAgc3RhdGljIGJvb2wgaXNE
ZWxldGVkVmFsdWUoUCogdmFsdWUpIHsgcmV0dXJuIHZhbHVlID09IHJlaW50ZXJwcmV0X2Nhc3Q8
UCo+KC0xKTsgfQogfTsKQEAgLTEzMCw3ICsxMzAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBQPiBz
dHJ1Y3QgSGFzaFRyYWl0czxQCiAjaWZkZWYgX19PQkpDX18KIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
SGFzaFRyYWl0czxfX3Vuc2FmZV91bnJldGFpbmVkIGlkPiA6IEdlbmVyaWNIYXNoVHJhaXRzPF9f
dW5zYWZlX3VucmV0YWluZWQgaWQ+IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBlbXB0eVZhbHVl
SXNaZXJvID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlzWmVy
byA9IHRydWU7CiAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKF9fdW5zYWZl
X3VucmV0YWluZWQgaWQmIHNsb3QpIHsgc2xvdCA9IChfX2JyaWRnZSBfX3Vuc2FmZV91bnJldGFp
bmVkIGlkKXJlaW50ZXJwcmV0X2Nhc3Q8Q0ZUeXBlUmVmPigtMSk7IH0KICAgICBzdGF0aWMgYm9v
bCBpc0RlbGV0ZWRWYWx1ZShfX3Vuc2FmZV91bnJldGFpbmVkIGlkIHZhbHVlKSB7IHJldHVybiAo
X19icmlkZ2UgQ0ZUeXBlUmVmKXZhbHVlID09IHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZUeXBlUmVmPigt
MSk7IH0KIH07CkBAIC0xMzgsNyArMTM4LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0
czxfX3Vuc2FmZV91bgogI2VuZGlmCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBTaW1w
bGVDbGFzc0hhc2hUcmFpdHMgOiBHZW5lcmljSGFzaFRyYWl0czxUPiB7Ci0gICAgc3RhdGljIGNv
bnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOwogICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERl
bGV0ZWRWYWx1ZShUJiBzbG90KSB7IG5ldyAoTm90TnVsbCwgc3RkOjphZGRyZXNzb2Yoc2xvdCkp
IFQoSGFzaFRhYmxlRGVsZXRlZFZhbHVlKTsgfQogICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZh
bHVlKGNvbnN0IFQmIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1
ZSgpOyB9CiB9OwpAQCAtMTk2LDcgKzE5Niw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFA+IHN0cnVj
dCBIYXNoVHJhaXRzPFIKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFA+IHN0cnVjdCBSZWZIYXNo
VHJhaXRzIDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPFJlZjxQPj4gewotICAgIHN0YXRpYyBjb25z
dCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBlbXB0eVZhbHVlSXNaZXJvID0gdHJ1ZTsKICAgICBzdGF0aWMgUmVmPFA+IGVtcHR5VmFsdWUo
KSB7IHJldHVybiBIYXNoVGFibGVFbXB0eVZhbHVlOyB9CiAKICAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWU+CkBAIC0yMDUsNyArMjA1LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgUD4gc3RydWN0IFJlZkhh
c2hUcmFpdAogICAgICAgICBuZXcgKE5vdE51bGwsIHN0ZDo6YWRkcmVzc29mKHNsb3QpKSBSZWY8
UD4oSGFzaFRhYmxlRW1wdHlWYWx1ZSk7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0IGJvb2wg
aGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiA9IHRydWU7CiAgICAgc3RhdGljIGJvb2wgaXNFbXB0
eVZhbHVlKGNvbnN0IFJlZjxQPiYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlLmlzSGFzaFRhYmxlRW1w
dHlWYWx1ZSgpOyB9CiAKICAgICBzdGF0aWMgdm9pZCBhc3NpZ25Ub0VtcHR5KFJlZjxQPiYgZW1w
dHlWYWx1ZSwgUmVmPFA+JiYgbmV3VmFsdWUpIHsgQVNTRVJUKGlzRW1wdHlWYWx1ZShlbXB0eVZh
bHVlKSk7IGVtcHR5VmFsdWUuYXNzaWduVG9IYXNoVGFibGVFbXB0eVZhbHVlKFdURk1vdmUobmV3
VmFsdWUpKTsgfQpAQCAtMjIxLDcgKzIyMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFA+IHN0cnVj
dCBSZWZIYXNoVHJhaXQKIHRlbXBsYXRlPHR5cGVuYW1lIFA+IHN0cnVjdCBIYXNoVHJhaXRzPFJl
ZjxQPj4gOiBSZWZIYXNoVHJhaXRzPFA+IHsgfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRy
YWl0czxTdHJpbmc+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPFN0cmluZz4gewotICAgIHN0YXRp
YyBjb25zdCBib29sIGhhc0lzRW1wdHlWYWx1ZUZ1bmN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gPSB0cnVlOwogICAgIHN0YXRp
YyBib29sIGlzRW1wdHlWYWx1ZShjb25zdCBTdHJpbmcmKTsKIAogICAgIHN0YXRpYyB2b2lkIGN1
c3RvbURlbGV0ZUJ1Y2tldChTdHJpbmcmKTsKQEAgLTI1OSw3ICsyNTksNyBAQCBzdHJ1Y3QgSGFz
aFRyYWl0SGFzQ3VzdG9tRGVsZXRlIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBYPiBzdGF0aWMg
c3RkOjp0cnVlX3R5cGUgVGVzdEhhc0N1c3RvbURlbGV0ZShYKiwgZGVjbHR5cGUoWDo6Y3VzdG9t
RGVsZXRlQnVja2V0KGJ1Y2tldEFyZykpKiA9IG51bGxwdHIpOwogICAgIHN0YXRpYyBzdGQ6OmZh
bHNlX3R5cGUgVGVzdEhhc0N1c3RvbURlbGV0ZSguLi4pOwogICAgIHR5cGVkZWYgZGVjbHR5cGUo
VGVzdEhhc0N1c3RvbURlbGV0ZShzdGF0aWNfY2FzdDxUcmFpdHMqPihudWxscHRyKSkpIFJlc3Vs
dFR5cGU7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBSZXN1bHRUeXBlOjp2YWx1ZTsK
KyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmFsdWUgPSBSZXN1bHRUeXBlOjp2YWx1ZTsKIH07
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgVD4KQEAgLTI4NCwxMCArMjg0
LDEwIEBAIHN0cnVjdCBQYWlySGFzaFRyYWl0cyA6IEdlbmVyaWNIYXNoVHJhaXQKICAgICB0eXBl
ZGVmIHN0ZDo6cGFpcjx0eXBlbmFtZSBGaXJzdFRyYWl0czo6VHJhaXRUeXBlLCB0eXBlbmFtZSBT
ZWNvbmRUcmFpdHM6OlRyYWl0VHlwZT4gVHJhaXRUeXBlOwogICAgIHR5cGVkZWYgc3RkOjpwYWly
PHR5cGVuYW1lIEZpcnN0VHJhaXRzOjpFbXB0eVZhbHVlVHlwZSwgdHlwZW5hbWUgU2Vjb25kVHJh
aXRzOjpFbXB0eVZhbHVlVHlwZT4gRW1wdHlWYWx1ZVR5cGU7CiAKLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBlbXB0eVZhbHVlSXNaZXJvID0gRmlyc3RUcmFpdHM6OmVtcHR5VmFsdWVJc1plcm8gJiYg
U2Vjb25kVHJhaXRzOjplbXB0eVZhbHVlSXNaZXJvOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBlbXB0eVZhbHVlSXNaZXJvID0gRmlyc3RUcmFpdHM6OmVtcHR5VmFsdWVJc1plcm8gJiYgU2Vj
b25kVHJhaXRzOjplbXB0eVZhbHVlSXNaZXJvOwogICAgIHN0YXRpYyBFbXB0eVZhbHVlVHlwZSBl
bXB0eVZhbHVlKCkgeyByZXR1cm4gc3RkOjptYWtlX3BhaXIoRmlyc3RUcmFpdHM6OmVtcHR5VmFs
dWUoKSwgU2Vjb25kVHJhaXRzOjplbXB0eVZhbHVlKCkpOyB9CiAKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbWluaW11bVRhYmxlU2l6ZSA9IEZpcnN0VHJhaXRzOjptaW5pbXVtVGFibGVTaXpl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWluaW11bVRhYmxlU2l6ZSA9IEZpcnN0
VHJhaXRzOjptaW5pbXVtVGFibGVTaXplOwogCiAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVs
ZXRlZFZhbHVlKFRyYWl0VHlwZSYgc2xvdCkgeyBGaXJzdFRyYWl0czo6Y29uc3RydWN0RGVsZXRl
ZFZhbHVlKHNsb3QuZmlyc3QpOyB9CiAgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29u
c3QgVHJhaXRUeXBlJiB2YWx1ZSkgeyByZXR1cm4gRmlyc3RUcmFpdHM6OmlzRGVsZXRlZFZhbHVl
KHZhbHVlLmZpcnN0KTsgfQpAQCAtMzA3LDEwICszMDcsMTAgQEAgc3RydWN0IFR1cGxlSGFzaFRy
YWl0cyA6IEdlbmVyaWNIYXNoVHJhaQogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBhbGxUcnVl
KEJvb2xUeXBlIHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEJvb2xUeXBlLCB0eXBlbmFtZS4uLiBCb29sVHlwZXM+CiAgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIGFsbFRydWUoQm9vbFR5cGUgdmFsdWUsIEJvb2xUeXBlcy4uLiB2YWx1ZXMpIHsgcmV0dXJu
IHZhbHVlICYmIGFsbFRydWUodmFsdWVzLi4uKTsgfQotICAgIHN0YXRpYyBjb25zdCBib29sIGVt
cHR5VmFsdWVJc1plcm8gPSBhbGxUcnVlKEZpcnN0VHJhaXQ6OmVtcHR5VmFsdWVJc1plcm8sIFRy
YWl0czo6ZW1wdHlWYWx1ZUlzWmVyby4uLik7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVt
cHR5VmFsdWVJc1plcm8gPSBhbGxUcnVlKEZpcnN0VHJhaXQ6OmVtcHR5VmFsdWVJc1plcm8sIFRy
YWl0czo6ZW1wdHlWYWx1ZUlzWmVyby4uLik7CiAgICAgc3RhdGljIEVtcHR5VmFsdWVUeXBlIGVt
cHR5VmFsdWUoKSB7IHJldHVybiBzdGQ6Om1ha2VfdHVwbGUoRmlyc3RUcmFpdDo6ZW1wdHlWYWx1
ZSgpLCBUcmFpdHM6OmVtcHR5VmFsdWUoKS4uLik7IH0KIAotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBtaW5pbXVtVGFibGVTaXplID0gRmlyc3RUcmFpdDo6bWluaW11bVRhYmxlU2l6ZTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1pbmltdW1UYWJsZVNpemUgPSBGaXJzdFRyYWl0
OjptaW5pbXVtVGFibGVTaXplOwogCiAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZh
bHVlKFRyYWl0VHlwZSYgc2xvdCkgeyBGaXJzdFRyYWl0Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUo
c3RkOjpnZXQ8MD4oc2xvdCkpOyB9CiAgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29u
c3QgVHJhaXRUeXBlJiB2YWx1ZSkgeyByZXR1cm4gRmlyc3RUcmFpdDo6aXNEZWxldGVkVmFsdWUo
c3RkOjpnZXQ8MD4odmFsdWUpKTsgfQpAQCAtMzI3LDcgKzMyNyw3IEBAIHN0cnVjdCBLZXlWYWx1
ZVBhaXJIYXNoVHJhaXRzIDogR2VuZXJpY0gKICAgICB0eXBlZGVmIEtleVZhbHVlUGFpcjx0eXBl
bmFtZSBLZXlUcmFpdHM6OkVtcHR5VmFsdWVUeXBlLCB0eXBlbmFtZSBWYWx1ZVRyYWl0czo6RW1w
dHlWYWx1ZVR5cGU+IEVtcHR5VmFsdWVUeXBlOwogICAgIHR5cGVkZWYgdHlwZW5hbWUgVmFsdWVU
cmFpdHNBcmc6OlRyYWl0VHlwZSBWYWx1ZVR5cGU7CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBl
bXB0eVZhbHVlSXNaZXJvID0gS2V5VHJhaXRzOjplbXB0eVZhbHVlSXNaZXJvICYmIFZhbHVlVHJh
aXRzOjplbXB0eVZhbHVlSXNaZXJvOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBlbXB0eVZh
bHVlSXNaZXJvID0gS2V5VHJhaXRzOjplbXB0eVZhbHVlSXNaZXJvICYmIFZhbHVlVHJhaXRzOjpl
bXB0eVZhbHVlSXNaZXJvOwogICAgIHN0YXRpYyBFbXB0eVZhbHVlVHlwZSBlbXB0eVZhbHVlKCkg
eyByZXR1cm4gS2V5VmFsdWVQYWlyPHR5cGVuYW1lIEtleVRyYWl0czo6RW1wdHlWYWx1ZVR5cGUs
IHR5cGVuYW1lIFZhbHVlVHJhaXRzOjpFbXB0eVZhbHVlVHlwZT4oS2V5VHJhaXRzOjplbXB0eVZh
bHVlKCksIFZhbHVlVHJhaXRzOjplbXB0eVZhbHVlKCkpOyB9CiAKICAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWU+CkBAIC0zMzcsNyArMzM3LDcgQEAgc3RydWN0IEtleVZhbHVlUGFpckhhc2hUcmFpdHMg
OiBHZW5lcmljSAogICAgICAgICBWYWx1ZVRyYWl0czo6dGVtcGxhdGUgY29uc3RydWN0RW1wdHlW
YWx1ZTxWYWx1ZVRyYWl0cz4oc2xvdC52YWx1ZSk7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIG1pbmltdW1UYWJsZVNpemUgPSBLZXlUcmFpdHM6Om1pbmltdW1UYWJsZVNpemU7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtaW5pbXVtVGFibGVTaXplID0gS2V5VHJh
aXRzOjptaW5pbXVtVGFibGVTaXplOwogCiAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRl
ZFZhbHVlKFRyYWl0VHlwZSYgc2xvdCkgeyBLZXlUcmFpdHM6OmNvbnN0cnVjdERlbGV0ZWRWYWx1
ZShzbG90LmtleSk7IH0KICAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBUcmFp
dFR5cGUmIHZhbHVlKSB7IHJldHVybiBLZXlUcmFpdHM6OmlzRGVsZXRlZFZhbHVlKHZhbHVlLmtl
eSk7IH0KQEAgLTM1Nyw3ICszNTcsNyBAQCBzdHJ1Y3QgSGFzaFRyYWl0czxLZXlWYWx1ZVBhaXI8
S2V5LCBWYWx1CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBzdHJ1Y3QgTnVsbGFibGVIYXNoVHJh
aXRzIDogcHVibGljIEhhc2hUcmFpdHM8VD4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5
VmFsdWVJc1plcm8gPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1
ZUlzWmVybyA9IGZhbHNlOwogICAgIHN0YXRpYyBUIGVtcHR5VmFsdWUoKSB7IHJldHVybiByZWlu
dGVycHJldF9jYXN0PFQ+KDEpOyB9CiB9OwogCkBAIC0zNjUsOCArMzY1LDggQEAgc3RydWN0IE51
bGxhYmxlSGFzaFRyYWl0cyA6IHB1YmxpYyBIYXNoVAogLy8gYW5kIGhvdyB0byBjb25zdHJ1Y3Qg
Ym90aC4KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBzdHJ1Y3QgQ3VzdG9tSGFzaFRyYWl0cyA6IHB1
YmxpYyBHZW5lcmljSGFzaFRyYWl0czxUPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlW
YWx1ZUlzWmVybyA9IGZhbHNlOwotICAgIHN0YXRpYyBjb25zdCBib29sIGhhc0lzRW1wdHlWYWx1
ZUZ1bmN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZW1wdHlWYWx1ZUlz
WmVybyA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBoYXNJc0VtcHR5VmFsdWVG
dW5jdGlvbiA9IHRydWU7CiAgICAgCiAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZh
bHVlKFQmIHNsb3QpCiAgICAgewpJbmRleDogU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBKU09OSW1wbCB7CiAKIG5hbWVzcGFjZSB7CiAKLXN0
YXRpYyBjb25zdCBpbnQgc3RhY2tMaW1pdCA9IDEwMDA7CitzdGF0aWMgY29uc3RleHByIGludCBz
dGFja0xpbWl0ID0gMTAwMDsKIAogZW51bSBjbGFzcyBUb2tlbiB7CiAgICAgT2JqZWN0QmVnaW4s
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvSlNPTlZhbHVlcy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0
Zi9KU09OVmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTUyLDcgKzUyLDcg
QEAgY2xhc3MgT2JqZWN0QmFzZTsKIC8vIEZJWE1FOiB1bmlmeSB0aGlzIEpTT04gcGFyc2VyIHdp
dGggSlNPTlBhcnNlIGluIEphdmFTY3JpcHRDb3JlLgogY2xhc3MgV1RGX0VYUE9SVF9QUklWQVRF
IFZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8VmFsdWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
Y29uc3QgaW50IG1heERlcHRoID0gMTAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIGludCBtYXhE
ZXB0aCA9IDEwMDA7CiAKICAgICB2aXJ0dWFsIH5WYWx1ZSgpCiAgICAgewpJbmRleDogU291cmNl
L1dURi93dGYvTGlzdEhhc2hTZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9MaXN0
SGFzaFNldC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9MaXN0SGFzaFNl
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIEJlbmphbWluIFBvdWxh
aW4gPGlraXBvdUBnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTgxLDcgKzE4MSw3IEBAIHB1
YmxpYzoKIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hBcmc+IHN0cnVjdCBMaXN0SGFzaFNldE5vZGVI
YXNoRnVuY3Rpb25zIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgdW5zaWduZWQg
aGFzaChjb25zdCBUJiBrZXkpIHsgcmV0dXJuIEhhc2hBcmc6Omhhc2goa2V5LT5tX3ZhbHVlKTsg
fQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFQmIGEs
IGNvbnN0IFQmIGIpIHsgcmV0dXJuIEhhc2hBcmc6OmVxdWFsKGEtPm1fdmFsdWUsIGItPm1fdmFs
dWUpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1w
dHlPckRlbGV0ZWQgPSBmYWxzZTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCB0
eXBlbmFtZSBIYXNoQXJnPiBjbGFzcyBMaXN0SGFzaFNldEl0ZXJhdG9yIHsKSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL0xvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9Mb2NrLmgJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL0xvY2suaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTExNCw4ICsxMTQsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZyaWVuZCBzdHJ1Y3Qg
VGVzdFdlYktpdEFQSTo6TG9ja0luc3BlY3RvcjsKICAgICAKLSAgICBzdGF0aWMgY29uc3QgdWlu
dDhfdCBpc0hlbGRCaXQgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1aW50OF90IGhhc1BhcmtlZEJp
dCA9IDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGlzSGVsZEJpdCA9IDE7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGhhc1BhcmtlZEJpdCA9IDI7CiAgICAgCiAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgbG9ja1Nsb3coKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCB1bmxvY2tTbG93KCk7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Mb2NrQWxnb3JpdGhtLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvTG9ja0FsZ29yaXRobS5oCShyZXZpc2lvbiAy
NDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9Mb2NrQWxnb3JpdGhtLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC00NCw4ICs0NCw4IEBAIHN0cnVjdCBFbXB0eUxvY2tIb29rcyB7CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIExvY2tUeXBlLCBMb2NrVHlwZSBpc0hlbGRCaXQsIExvY2tUeXBlIGhhc1BhcmtlZEJp
dCwgdHlwZW5hbWUgSG9va3MgPSBFbXB0eUxvY2tIb29rczxMb2NrVHlwZT4+CiBjbGFzcyBMb2Nr
QWxnb3JpdGhtIHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAg
c3RhdGljIGNvbnN0IExvY2tUeXBlIG1hc2sgPSBpc0hlbGRCaXQgfCBoYXNQYXJrZWRCaXQ7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIExvY2tUeXBlIG1hc2sgPSBpc0hlbGRCaXQgfCBoYXNQYXJrZWRCaXQ7CiAKIHB1Ymxp
YzoKICAgICBzdGF0aWMgYm9vbCBsb2NrRmFzdEFzc3VtaW5nWmVybyhBdG9taWM8TG9ja1R5cGU+
JiBsb2NrKQpJbmRleDogU291cmNlL1dURi93dGYvTG9ja0FsZ29yaXRobUlubGluZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9Mb2NrQWxnb3JpdGhtSW5saW5lcy5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9Mb2NrQWxnb3JpdGhtSW5saW5lcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNDAsNyArNDAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZSwg
TG9ja1R5cGUgaXNICiB2b2lkIExvY2tBbGdvcml0aG08TG9ja1R5cGUsIGlzSGVsZEJpdCwgaGFz
UGFya2VkQml0LCBIb29rcz46OmxvY2tTbG93KEF0b21pYzxMb2NrVHlwZT4mIGxvY2spCiB7CiAg
ICAgLy8gVGhpcyBtYWdpYyBudW1iZXIgdHVybnMgb3V0IHRvIGJlIG9wdGltYWwgYmFzZWQgb24g
cGFzdCBKaWtlc1JWTSBleHBlcmltZW50cy4KLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc3Bp
bkxpbWl0ID0gNDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzcGluTGltaXQgPSA0
MDsKICAgICAKICAgICB1bnNpZ25lZCBzcGluQ291bnQgPSAwOwogICAgIApJbmRleDogU291cmNl
L1dURi93dGYvTG9nZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvTG9nZ2VyLmgJ
KHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTY0LDcgKzY0LDcgQEAgY2xhc3MgSGFzVG9KU09OU3RyaW5nIHsKICAgICB0ZW1wbGF0ZSA8
Y2xhc3MgVD4gc3RhdGljIHN0ZDo6ZmFsc2VfdHlwZSB0ZXN0KC4uLik7CiAKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IGRlY2x0eXBlKHRlc3Q8Qz4obnVsbHB0cikpOjp2
YWx1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmFsdWUgPSBkZWNsdHlwZSh0ZXN0PEM+
KG51bGxwdHIpKTo6dmFsdWU7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBBcmd1bWVudCwgYm9v
bCBoYXNKU09OID0gSGFzVG9KU09OU3RyaW5nPEFyZ3VtZW50Pjo6dmFsdWU+CkluZGV4OiBTb3Vy
Y2UvV1RGL3d0Zi9Mb2dnZXJIZWxwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9M
b2dnZXJIZWxwZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvTG9nZ2Vy
SGVscGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDggKzU4LDggQEAgcHVibGljOgogCiAgICAg
Y29uc3Qgdm9pZCogY2hpbGRMb2dJZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZpZXIpIGNvbnN0
CiAgICAgewotICAgICAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgcGFyZW50TWFzayA9IDB4ZmZm
ZmZmZmZmZmZmMDAwMHVsbDsKLSAgICAgICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IG1hc2tMb3dl
cldvcmQgPSAweGZmZmZ1bGw7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDY0X3QgcGFy
ZW50TWFzayA9IDB4ZmZmZmZmZmZmZmZmMDAwMHVsbDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhw
ciB1aW50NjRfdCBtYXNrTG93ZXJXb3JkID0gMHhmZmZmdWxsOwogICAgICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KGxv
Z0lkZW50aWZpZXIoKSkgJiBwYXJlbnRNYXNrKSB8IChpZGVudGlmaWVyICYgbWFza0xvd2VyV29y
ZCkpOwogICAgIH0KIApJbmRleDogU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAJKHJldmlzaW9uIDI0OTk3NikK
KysrIFNvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODks
NyArODksNyBAQCBib29sIGNhbkFjY2Vzc1RocmVhZExvY2FsRGF0YUZvclRocmVhZChUCiAjZW5k
aWYKIAogLy8gMC4xIHNlYyBkZWxheXMgaW4gVUkgaXMgYXBwcm94aW1hdGUgdGhyZXNob2xkIHdo
ZW4gdGhleSBiZWNvbWUgbm90aWNlYWJsZS4gSGF2ZSBhIGxpbWl0IHRoYXQncyBoYWxmIG9mIHRo
YXQuCi1zdGF0aWMgY29uc3QgYXV0byBtYXhSdW5Mb29wU3VzcGVuc2lvblRpbWUgPSA1MF9tczsK
K3N0YXRpYyBjb25zdGV4cHIgYXV0byBtYXhSdW5Mb29wU3VzcGVuc2lvblRpbWUgPSA1MF9tczsK
IAogdm9pZCBkaXNwYXRjaEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFkKCkKIHsKSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL01ldGFBbGxvY2F0b3JQdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9NZXRhQWxsb2NhdG9yUHRyLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3Rm
L01ldGFBbGxvY2F0b3JQdHIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDYsNyArMTA2LDcgQEAgc3RydWN0
IE1ldGFBbGxvY2F0b3JQdHJIYXNoIHsKICAgICB7CiAgICAgICAgIHJldHVybiBhID09IGI7CiAg
ICAgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlP
ckRlbGV0ZWQgPSB0cnVlOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IERlZmF1
bHRIYXNoOwpJbmRleDogU291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvd3RmL01vbm90b25pY1RpbWUuaAkocmV2aXNpb24gMjQ5OTc2KQorKysg
U291cmNlL1dURi93dGYvTW9ub3RvbmljVGltZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDcgKzQwLDcg
QEAgY2xhc3MgUHJpbnRTdHJlYW07CiBjbGFzcyBNb25vdG9uaWNUaW1lIGZpbmFsIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgQ2xvY2tU
eXBlIGNsb2NrVHlwZSA9IENsb2NrVHlwZTo6TW9ub3RvbmljOworICAgIHN0YXRpYyBjb25zdGV4
cHIgQ2xvY2tUeXBlIGNsb2NrVHlwZSA9IENsb2NrVHlwZTo6TW9ub3RvbmljOwogICAgIAogICAg
IC8vIFRoaXMgaXMgdGhlIGVwb2NoLiBTbywgeC5zZWNvbmRzU2luY2VFcG9jaCgpIHNob3VsZCBi
ZSB0aGUgc2FtZSBhcyB4IC0gTW9ub3RvbmljVGltZSgpLgogICAgIGNvbnN0ZXhwciBNb25vdG9u
aWNUaW1lKCkgeyB9CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9OYXR1cmFsTG9vcHMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9OYXR1cmFsTG9vcHMuaAkocmV2aXNpb24gMjQ5OTc2KQor
KysgU291cmNlL1dURi93dGYvTmF0dXJhbExvb3BzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjYs
NyArMTI2LDcgQEAgcHVibGljOgogICAgICAgICAvLyBibG9ja3MgdG8gdGhlaXIgbG9vcCBoZWFk
ZXJzLCB3aGljaCBnaXZlcyB1cyBhbGwgb2YgdGhlIGJsb2NrcyBpbiB0aGUKICAgICAgICAgLy8g
bG9vcCBib2R5LgogICAgIAotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAg
CiAgICAgICAgIGlmICh2ZXJib3NlKSB7CiAgICAgICAgICAgICBkYXRhTG9nKCJEb21pbmF0b3Jz
OlxuIik7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi93dGYvT2JqZWN0SWRlbnRpZmllci5oCShyZXZpc2lvbiAyNDk5NzYp
CisrKyBTb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTExNCw3ICsxMTQsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgT2JqZWN0SWRlbnRp
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgT2JqZWN0SWRlbnRpZmllckhhc2ggewogICAg
IHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IE9iamVjdElkZW50aWZpZXI8VD4mIGlkZW50aWZp
ZXIpIHsgcmV0dXJuIGludEhhc2goaWRlbnRpZmllci5tX2lkZW50aWZpZXIpOyB9CiAgICAgc3Rh
dGljIGJvb2wgZXF1YWwoY29uc3QgT2JqZWN0SWRlbnRpZmllcjxUPiYgYSwgY29uc3QgT2JqZWN0
SWRlbnRpZmllcjxUPiYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJv
b2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czxPYmplY3RJZGVudGlmaWVyPFQ+
PiA6IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxPYmplY3RJZGVudGlmaWVyPFQ+PiB7IH07CkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi9SQU1TaXplLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9SQU1TaXplLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvUkFNU2l6
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNDIsNyArNDIsNyBAQAogbmFtZXNwYWNlIFdURiB7CiAKICNp
ZiBPUyhXSU5ET1dTKQotc3RhdGljIGNvbnN0IHNpemVfdCByYW1TaXplR3Vlc3MgPSA1MTIgKiBN
QjsKK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHJhbVNpemVHdWVzcyA9IDUxMiAqIE1COwogI2Vu
ZGlmCiAKIHN0YXRpYyBzaXplX3QgY29tcHV0ZVJBTVNpemUoKQpJbmRleDogU291cmNlL1dURi93
dGYvUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUmVmLmgJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL1JlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjM5LDcg
KzIzOSw3IEBAIHN0cnVjdCBHZXRQdHJIZWxwZXI8UmVmPFQsIFU+PiB7CiAKIHRlbXBsYXRlIDx0
eXBlbmFtZSBULCB0eXBlbmFtZSBVPgogc3RydWN0IElzU21hcnRQdHI8UmVmPFQsIFU+PiB7Ci0g
ICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCB2YWx1ZSA9IHRydWU7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBV
PgpJbmRleDogU291cmNlL1dURi93dGYvUmVmUHRyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri93dGYvUmVmUHRyLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL1JlZlB0
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzksNyArMjM5LDcgQEAgaW5saW5lIFJlZlB0cjxULCBV
PiBzdGF0aWNfcG9pbnRlcl9jYXN0KAogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
VT4KIHN0cnVjdCBJc1NtYXJ0UHRyPFJlZlB0cjxULCBVPj4gewotICAgIHN0YXRpYyBjb25zdCBi
b29sIHZhbHVlID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmFsdWUgPSB0cnVl
OwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL1JldGFpblB0ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1JldGFpblB0
ci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9SZXRhaW5QdHIuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA1LTIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAw
NS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0zMzYsNyArMzM2LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJldGFp
blB0cjx0eQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IElzU21hcnRQdHI8UmV0
YWluUHRyPFQ+PiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOworICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCB2YWx1ZSA9IHRydWU7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBQPiBzdHJ1Y3QgSGFzaFRyYWl0czxSZXRhaW5QdHI8UD4+IDogU2ltcGxlQ2xhc3NIYXNoVHJh
aXRzPFJldGFpblB0cjxQPj4gewpAQCAtMzY2LDcgKzM2Niw3IEBAIHN0cnVjdCBSZXRhaW5QdHJP
YmplY3RIYXNoIHsKICAgICB7CiAgICAgICAgIHJldHVybiBDRkVxdWFsKGEuZ2V0KCksIGIuZ2V0
KCkpOwogICAgIH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9y
RGVsZXRlZCA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzYWZlVG9Db21wYXJl
VG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogfTsKIAogaW5saW5lIGJvb2wgc2FmZUNGRXF1YWwo
Q0ZUeXBlUmVmIGEsIENGVHlwZVJlZiBiKQpJbmRleDogU291cmNlL1dURi93dGYvU2NoZWR1bGVQ
YWlyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvU2NoZWR1bGVQYWlyLmgJKHJldmlz
aW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL1NjaGVkdWxlUGFpci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTc5LDcgKzc5LDcgQEAgc3RydWN0IFNjaGVkdWxlUGFpckhhc2ggewogCiAgICAg
c3RhdGljIGJvb2wgZXF1YWwoY29uc3QgUmVmUHRyPFNjaGVkdWxlUGFpcj4mIGEsIGNvbnN0IFJl
ZlB0cjxTY2hlZHVsZVBhaXI+JiBiKSB7IHJldHVybiBhID09IGI7IH0KIAotICAgIHN0YXRpYyBj
b25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwog
fTsKIAogdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxTY2hlZHVsZVBhaXI+LCBTY2hlZHVsZVBhaXJI
YXNoPiBTY2hlZHVsZVBhaXJIYXNoU2V0OwpJbmRleDogU291cmNlL1dURi93dGYvU3RhY2tTaG90
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvU3RhY2tTaG90LmgJKHJldmlzaW9uIDI0
OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL1N0YWNrU2hvdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTkgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTE3
LDcgKzExNyw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgU3RhY2tTaG90SGFzaCB7CiAgICAgc3RhdGlj
IHVuc2lnbmVkIGhhc2goY29uc3QgU3RhY2tTaG90JiBzaG90KSB7IHJldHVybiBzaG90Lmhhc2go
KTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFN0YWNrU2hvdCYgYSwgY29uc3QgU3Rh
Y2tTaG90JiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZl
VG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOwogfTsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IERlZmF1bHRIYXNoOwpJbmRleDogU291cmNlL1dURi93dGYv
U3RkTGliRXh0cmFzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFz
LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOC0y
MDE3IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OC0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAxMyBQYXRyaWNrIEdhbnN0ZXJlciA8cGFyb2dhQHBhcm9nYS5jb20+CiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CkBAIC0xMTMsOSArMTEzLDkgQEAgbmFtZXNwYWNlIFdURiB7CiAKIGVudW0gQ2hlY2tNb3Zl
UGFyYW1ldGVyVGFnIHsgQ2hlY2tNb3ZlUGFyYW1ldGVyIH07CiAKLXN0YXRpYyBjb25zdCBzaXpl
X3QgS0IgPSAxMDI0Owotc3RhdGljIGNvbnN0IHNpemVfdCBNQiA9IDEwMjQgKiAxMDI0Owotc3Rh
dGljIGNvbnN0IHNpemVfdCBHQiA9IDEwMjQgKiAxMDI0ICogMTAyNDsKK3N0YXRpYyBjb25zdGV4
cHIgc2l6ZV90IEtCID0gMTAyNDsKK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IE1CID0gMTAyNCAq
IDEwMjQ7CitzdGF0aWMgY29uc3RleHByIHNpemVfdCBHQiA9IDEwMjQgKiAxMDI0ICogMTAyNDsK
IAogaW5saW5lIGJvb2wgaXNQb2ludGVyQWxpZ25lZCh2b2lkKiBwKQogewpJbmRleDogU291cmNl
L1dURi93dGYvVGlueVB0clNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1RpbnlQ
dHJTZXQuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvVGlueVB0clNldC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzU5LDEyICszNTksMTIgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBmcmllbmQgY2xhc3MgSlNDOjpERkc6OlN0cnVjdHVyZUFic3RyYWN0VmFsdWU7CiAKLSAg
ICBzdGF0aWMgY29uc3QgdWludHB0cl90IGZhdEZsYWcgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1
aW50cHRyX3QgcmVzZXJ2ZWRGbGFnID0gMjsKLSAgICBzdGF0aWMgY29uc3QgdWludHB0cl90IGZs
YWdzID0gZmF0RmxhZyB8IHJlc2VydmVkRmxhZzsKLSAgICBzdGF0aWMgY29uc3QgdWludHB0cl90
IHJlc2VydmVkVmFsdWUgPSA0OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IGZhdEZs
YWcgPSAxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IHJlc2VydmVkRmxhZyA9IDI7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgZmxhZ3MgPSBmYXRGbGFnIHwgcmVzZXJ2
ZWRGbGFnOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IHJlc2VydmVkVmFsdWUgPSA0
OwogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGRlZmF1bHRTdGFydGluZ1NpemUgPSA0Owor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZGVmYXVsdFN0YXJ0aW5nU2l6ZSA9IDQ7CiAg
ICAgCiAgICAgTkVWRVJfSU5MSU5FIGJvb2wgYWRkT3V0T2ZMaW5lKFQgdmFsdWUpCiAgICAgewpJ
bmRleDogU291cmNlL1dURi93dGYvVVJMLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9VUkwuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXVEYgewogdHlwZWRlZiBW
ZWN0b3I8Y2hhciwgNTEyPiBDaGFyQnVmZmVyOwogdHlwZWRlZiBWZWN0b3I8VUNoYXIsIDUxMj4g
VUNoYXJCdWZmZXI7CiAKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnZhbGlkUG9ydE51bWJlciA9
IDB4RkZGRjsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaW52YWxpZFBvcnROdW1iZXIgPSAw
eEZGRkY7CiAKIC8vIENvcGllcyB0aGUgc291cmNlIHRvIHRoZSBkZXN0aW5hdGlvbiwgYXNzdW1p
bmcgYWxsIHRoZSBzb3VyY2UgY2hhcmFjdGVycyBhcmUKIC8vIEFTQ0lJLiBUaGUgZGVzdGluYXRp
b24gYnVmZmVyIG11c3QgYmUgbGFyZ2UgZW5vdWdoLiBOdWxsIGNoYXJhY3RlcnMgYXJlIGFsbG93
ZWQKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1VSTEhhc2guaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9VUkxIYXNoLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL1VS
TEhhc2guaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00Myw3ICs0Myw3IEBAIHN0cnVjdCBVUkxIYXNoIHsKICAg
ICAgICAgcmV0dXJuIFN0cmluZ0hhc2g6OmVxdWFsKGEuc3RyaW5nKCksIGIuc3RyaW5nKCkpOwog
ICAgIH0KIAotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxl
dGVkID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0Vt
cHR5T3JEZWxldGVkID0gZmFsc2U7CiB9OwogCiAvLyBVUkxIYXNoIGlzIHRoZSBkZWZhdWx0IGhh
c2ggZm9yIFN0cmluZwpJbmRleDogU291cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9VUkxQYXJzZXIuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvV1RGL3d0Zi9VUkxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjUyLDEx
ICs2NTIsMTEgQEAgdm9pZCBVUkxQYXJzZXI6OmVuY29kZU5vblVURjhRdWVyeShjb25zdAogCiBP
cHRpb25hbDx1aW50MTZfdD4gVVJMUGFyc2VyOjpkZWZhdWx0UG9ydEZvclByb3RvY29sKFN0cmlu
Z1ZpZXcgc2NoZW1lKQogewotICAgIHN0YXRpYyBjb25zdCB1aW50MTZfdCBmdHBQb3J0ID0gMjE7
Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IGh0dHBQb3J0ID0gODA7Ci0gICAgc3RhdGljIGNv
bnN0IHVpbnQxNl90IGh0dHBzUG9ydCA9IDQ0MzsKLSAgICBzdGF0aWMgY29uc3QgdWludDE2X3Qg
d3NQb3J0ID0gODA7Ci0gICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IHdzc1BvcnQgPSA0NDM7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBmdHBQb3J0ID0gMjE7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1aW50MTZfdCBodHRwUG9ydCA9IDgwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWlu
dDE2X3QgaHR0cHNQb3J0ID0gNDQzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qgd3NQ
b3J0ID0gODA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCB3c3NQb3J0ID0gNDQzOwog
ICAgIAogICAgIGF1dG8gbGVuZ3RoID0gc2NoZW1lLmxlbmd0aCgpOwogICAgIGlmICghbGVuZ3Ro
KQpJbmRleDogU291cmNlL1dURi93dGYvVmVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri93dGYvVmVjdG9yLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL1ZlY3Rv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMp
IDIwMDUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0
IChDKSAyMDA1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTU5MCw4ICs1OTAsOCBAQCBwcml2YXRlOgogI2lmIEFTQU5fRU5BQkxF
RAogICAgIC8vIEFTYW4gbmVlZHMgdGhlIGJ1ZmZlciB0byBiZWdpbiBhbmQgZW5kIG9uIDgtYnl0
ZSBib3VuZGFyaWVzIGZvciBhbm5vdGF0aW9ucyB0byB3b3JrLgogICAgIC8vIEZJWE1FOiBBZGQg
YSByZWR6b25lIGJlZm9yZSB0aGUgYnVmZmVyIHRvIGNhdGNoIG9mZiBieSBvbmUgYWNjZXNzZXMu
IFdlIGRvbid0IG5lZWQgYSBndWFyZCBhZnRlciwgYmVjYXVzZSB0aGUgYnVmZmVyIGlzIHRoZSBs
YXN0IG1lbWJlciB2YXJpYWJsZS4KLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGFzYW5JbmxpbmVC
dWZmZXJBbGlnbm1lbnQgPSBzdGQ6OmFsaWdubWVudF9vZjxUPjo6dmFsdWUgPj0gOCA/IHN0ZDo6
YWxpZ25tZW50X29mPFQ+Ojp2YWx1ZSA6IDg7Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBhc2Fu
QWRqdXN0ZWRJbmxpbmVDYXBhY2l0eSA9ICgoc2l6ZW9mKFQpICogaW5saW5lQ2FwYWNpdHkgKyA3
KSAmIH43KSAvIHNpemVvZihUKTsKKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBhc2FuSW5s
aW5lQnVmZmVyQWxpZ25tZW50ID0gc3RkOjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlID49IDggPyBz
dGQ6OmFsaWdubWVudF9vZjxUPjo6dmFsdWUgOiA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6
ZV90IGFzYW5BZGp1c3RlZElubGluZUNhcGFjaXR5ID0gKChzaXplb2YoVCkgKiBpbmxpbmVDYXBh
Y2l0eSArIDcpICYgfjcpIC8gc2l6ZW9mKFQpOwogICAgIHR5cGVuYW1lIHN0ZDo6YWxpZ25lZF9z
dG9yYWdlPHNpemVvZihUKSwgYXNhbklubGluZUJ1ZmZlckFsaWdubWVudD46OnR5cGUgbV9pbmxp
bmVCdWZmZXJbYXNhbkFkanVzdGVkSW5saW5lQ2FwYWNpdHldOwogI2Vsc2UKICAgICB0eXBlbmFt
ZSBzdGQ6OmFsaWduZWRfc3RvcmFnZTxzaXplb2YoVCksIHN0ZDo6YWxpZ25tZW50X29mPFQ+Ojp2
YWx1ZT46OnR5cGUgbV9pbmxpbmVCdWZmZXJbaW5saW5lQ2FwYWNpdHldOwpJbmRleDogU291cmNl
L1dURi93dGYvVmVjdG9yVHJhaXRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvVmVj
dG9yVHJhaXRzLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL1ZlY3RvclRy
YWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM2LDIzICszNiwyMyBAQCBuYW1lc3BhY2UgV1RG
IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIHN0cnVjdCBWZWN0b3JUcmFpdHNCYXNl
PGZhbHNlLCBUPgogICAgIHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNJbml0aWFs
aXphdGlvbiA9IHRydWU7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGNhbkluaXRpYWxpemVX
aXRoTWVtc2V0ID0gZmFsc2U7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGNhbk1vdmVXaXRo
TWVtY3B5ID0gZmFsc2U7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGNhbkNvcHlXaXRoTWVt
Y3B5ID0gZmFsc2U7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGNhbkZpbGxXaXRoTWVtc2V0
ID0gZmFsc2U7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGNhbkNvbXBhcmVXaXRoTWVtY21w
ID0gZmFsc2U7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0luaXRpYWxpemF0
aW9uID0gdHJ1ZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbkluaXRpYWxpemVX
aXRoTWVtc2V0ID0gZmFsc2U7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Nb3Zl
V2l0aE1lbWNweSA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2FuQ29w
eVdpdGhNZW1jcHkgPSBmYWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbkZp
bGxXaXRoTWVtc2V0ID0gZmFsc2U7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5D
b21wYXJlV2l0aE1lbWNtcCA9IGZhbHNlOwogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgogICAgIHN0cnVjdCBWZWN0b3JUcmFpdHNCYXNlPHRydWUsIFQ+CiAgICAgewotICAgICAg
ICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0luaXRpYWxpemF0aW9uID0gZmFsc2U7Ci0gICAgICAg
IHN0YXRpYyBjb25zdCBib29sIGNhbkluaXRpYWxpemVXaXRoTWVtc2V0ID0gdHJ1ZTsKLSAgICAg
ICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuTW92ZVdpdGhNZW1jcHkgPSB0cnVlOwotICAgICAgICBz
dGF0aWMgY29uc3QgYm9vbCBjYW5Db3B5V2l0aE1lbWNweSA9IHRydWU7Ci0gICAgICAgIHN0YXRp
YyBjb25zdCBib29sIGNhbkZpbGxXaXRoTWVtc2V0ID0gc2l6ZW9mKFQpID09IHNpemVvZihjaGFy
KSAmJiBzdGQ6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJv
b2wgY2FuQ29tcGFyZVdpdGhNZW1jbXAgPSB0cnVlOworICAgICAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgbmVlZHNJbml0aWFsaXphdGlvbiA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSB0cnVlOworICAgICAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgY2FuTW92ZVdpdGhNZW1jcHkgPSB0cnVlOworICAgICAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgY2FuQ29weVdpdGhNZW1jcHkgPSB0cnVlOworICAgICAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgY2FuRmlsbFdpdGhNZW1zZXQgPSBzaXplb2YoVCkgPT0gc2l6ZW9mKGNo
YXIpICYmIHN0ZDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlOworICAgICAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgY2FuQ29tcGFyZVdpdGhNZW1jbXAgPSB0cnVlOwogICAgIH07CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgpAQCAtNjAsOSArNjAsOSBAQCBuYW1lc3BhY2UgV1RGIHsKIAogICAg
IHN0cnVjdCBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyA6IFZlY3RvclRyYWl0c0Jhc2U8ZmFsc2Us
IHZvaWQ+CiAgICAgewotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBjYW5Jbml0aWFsaXplV2l0
aE1lbXNldCA9IHRydWU7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGNhbk1vdmVXaXRoTWVt
Y3B5ID0gdHJ1ZTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuQ29tcGFyZVdpdGhNZW1j
bXAgPSB0cnVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2FuSW5pdGlhbGl6ZVdp
dGhNZW1zZXQgPSB0cnVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2FuTW92ZVdp
dGhNZW1jcHkgPSB0cnVlOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2FuQ29tcGFy
ZVdpdGhNZW1jbXAgPSB0cnVlOwogICAgIH07CiAKICAgICAvLyBXZSBrbm93IHNtYXJ0IHBvaW50
ZXJzIGFyZSBzaW1wbGUgZW5vdWdoIHRoYXQgaW5pdGlhbGl6aW5nIHRvIDAgYW5kIG1vdmluZyB3
aXRoIG1lbWNweQpAQCAtNzksMTIgKzc5LDEyIEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICB0
eXBlZGVmIFZlY3RvclRyYWl0czxGaXJzdD4gRmlyc3RUcmFpdHM7CiAgICAgICAgIHR5cGVkZWYg
VmVjdG9yVHJhaXRzPFNlY29uZD4gU2Vjb25kVHJhaXRzOwogCi0gICAgICAgIHN0YXRpYyBjb25z
dCBib29sIG5lZWRzSW5pdGlhbGl6YXRpb24gPSBGaXJzdFRyYWl0czo6bmVlZHNJbml0aWFsaXph
dGlvbiB8fCBTZWNvbmRUcmFpdHM6Om5lZWRzSW5pdGlhbGl6YXRpb247Ci0gICAgICAgIHN0YXRp
YyBjb25zdCBib29sIGNhbkluaXRpYWxpemVXaXRoTWVtc2V0ID0gRmlyc3RUcmFpdHM6OmNhbklu
aXRpYWxpemVXaXRoTWVtc2V0ICYmIFNlY29uZFRyYWl0czo6Y2FuSW5pdGlhbGl6ZVdpdGhNZW1z
ZXQ7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGNhbk1vdmVXaXRoTWVtY3B5ID0gRmlyc3RU
cmFpdHM6OmNhbk1vdmVXaXRoTWVtY3B5ICYmIFNlY29uZFRyYWl0czo6Y2FuTW92ZVdpdGhNZW1j
cHk7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGNhbkNvcHlXaXRoTWVtY3B5ID0gRmlyc3RU
cmFpdHM6OmNhbkNvcHlXaXRoTWVtY3B5ICYmIFNlY29uZFRyYWl0czo6Y2FuQ29weVdpdGhNZW1j
cHk7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGNhbkZpbGxXaXRoTWVtc2V0ID0gZmFsc2U7
Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIGNhbkNvbXBhcmVXaXRoTWVtY21wID0gRmlyc3RU
cmFpdHM6OmNhbkNvbXBhcmVXaXRoTWVtY21wICYmIFNlY29uZFRyYWl0czo6Y2FuQ29tcGFyZVdp
dGhNZW1jbXA7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0luaXRpYWxpemF0
aW9uID0gRmlyc3RUcmFpdHM6Om5lZWRzSW5pdGlhbGl6YXRpb24gfHwgU2Vjb25kVHJhaXRzOjpu
ZWVkc0luaXRpYWxpemF0aW9uOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2FuSW5p
dGlhbGl6ZVdpdGhNZW1zZXQgPSBGaXJzdFRyYWl0czo6Y2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQg
JiYgU2Vjb25kVHJhaXRzOjpjYW5Jbml0aWFsaXplV2l0aE1lbXNldDsKKyAgICAgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGNhbk1vdmVXaXRoTWVtY3B5ID0gRmlyc3RUcmFpdHM6OmNhbk1vdmVX
aXRoTWVtY3B5ICYmIFNlY29uZFRyYWl0czo6Y2FuTW92ZVdpdGhNZW1jcHk7CisgICAgICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Db3B5V2l0aE1lbWNweSA9IEZpcnN0VHJhaXRzOjpjYW5D
b3B5V2l0aE1lbWNweSAmJiBTZWNvbmRUcmFpdHM6OmNhbkNvcHlXaXRoTWVtY3B5OworICAgICAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgY2FuRmlsbFdpdGhNZW1zZXQgPSBmYWxzZTsKKyAgICAg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGNhbkNvbXBhcmVXaXRoTWVtY21wID0gRmlyc3RUcmFp
dHM6OmNhbkNvbXBhcmVXaXRoTWVtY21wICYmIFNlY29uZFRyYWl0czo6Y2FuQ29tcGFyZVdpdGhN
ZW1jbXA7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9XYWxsVGltZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmgJKHJl
dmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNDEsNyArNDEsNyBAQCBjbGFzcyBQcmludFN0cmVhbTsKIGNsYXNzIFdhbGxUaW1lIGZpbmFs
IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3QgQ2xvY2tUeXBlIGNsb2NrVHlwZSA9IENsb2NrVHlwZTo6V2FsbDsKKyAgICBzdGF0aWMgY29u
c3RleHByIENsb2NrVHlwZSBjbG9ja1R5cGUgPSBDbG9ja1R5cGU6OldhbGw7CiAgICAgCiAgICAg
Ly8gVGhpcyBpcyB0aGUgZXBvY2guIFNvLCB4LnNlY29uZHNTaW5jZUVwb2NoKCkgc2hvdWxkIGJl
IHRoZSBzYW1lIGFzIHggLSBXYWxsVGltZSgpLgogICAgIGNvbnN0ZXhwciBXYWxsVGltZSgpIHsg
fQpJbmRleDogU291cmNlL1dURi93dGYvV2Vha0hhc2hTZXQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9XZWFrSGFzaFNldC5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RG
L3d0Zi9XZWFrSGFzaFNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNywgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDcgKzMzLDcgQEAKIG5h
bWVzcGFjZSBXVEYgewogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFJlZjxXZWFrUHRy
SW1wbD4+IDogUmVmSGFzaFRyYWl0czxXZWFrUHRySW1wbD4gewotICAgIHN0YXRpYyBjb25zdCBi
b29sIGhhc0lzUmVsZWFzZWRXZWFrVmFsdWVGdW5jdGlvbiA9IHRydWU7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGhhc0lzUmVsZWFzZWRXZWFrVmFsdWVGdW5jdGlvbiA9IHRydWU7CiAgICAg
c3RhdGljIGJvb2wgaXNSZWxlYXNlZFdlYWtWYWx1ZShjb25zdCBSZWY8V2Vha1B0ckltcGw+JiB2
YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiAhdmFsdWUuaXNIYXNoVGFibGVEZWxldGVkVmFs
dWUoKSAmJiAhdmFsdWUuaXNIYXNoVGFibGVFbXB0eVZhbHVlKCkgJiYgIXZhbHVlLmdldCgpOwpJ
bmRleDogU291cmNlL1dURi93dGYvV29yZExvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9Xb3JkTG9jay5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9Xb3Jk
TG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODQsOSArODQsOSBAQCBwdWJsaWM6CiBwcm90ZWN0
ZWQ6CiAgICAgZnJpZW5kIHN0cnVjdCBUZXN0V2ViS2l0QVBJOjpMb2NrSW5zcGVjdG9yOwogICAg
IAotICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3QgaXNMb2NrZWRCaXQgPSAxOwotICAgIHN0YXRp
YyBjb25zdCB1aW50cHRyX3QgaXNRdWV1ZUxvY2tlZEJpdCA9IDI7Ci0gICAgc3RhdGljIGNvbnN0
IHVpbnRwdHJfdCBxdWV1ZUhlYWRNYXNrID0gMzsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRw
dHJfdCBpc0xvY2tlZEJpdCA9IDE7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgaXNR
dWV1ZUxvY2tlZEJpdCA9IDI7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgcXVldWVI
ZWFkTWFzayA9IDM7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBsb2NrU2xvdygpOwog
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHVubG9ja1Nsb3coKTsKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL2NvY29hL0NQVVRpbWVDb2NvYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvY29jb2EvQ1BVVGltZUNvY29hLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dU
Ri93dGYvY29jb2EvQ1BVVGltZUNvY29hLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcgKzM3
LDcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLXN0YXRpYyBjb25zdCBpbnQ2NF90IG1pY3Jvc2Vj
b25kc1BlclNlY29uZCA9IDEwMDAwMDA7CitzdGF0aWMgY29uc3RleHByIGludDY0X3QgbWljcm9z
ZWNvbmRzUGVyU2Vjb25kID0gMTAwMDAwMDsKIAogc3RhdGljIGludDY0X3QgdGltZVZhbHVlVG9N
aWNyb3NlY29uZHMoY29uc3QgdGltZV92YWx1ZV90JiB2YWx1ZSkKIHsKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvd3RmL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRs
ZXJDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYwLDcgKzYwLDcgQEAgc3RhdGljIGludCBu
b3RpZnlUb2tlbnNbM107CiAvLyBsb3cgbWVtb3J5IGV2ZW50cywgZ3JlYXRseSByZWR1Y2luZyBD
UFUgdXNhZ2UuCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBzX21pbmltdW1Ib2xkT2ZmVGltZSB7IDVf
cyB9OwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNf
aG9sZE9mZk11bHRpcGxpZXIgPSAyMDsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc19ob2xk
T2ZmTXVsdGlwbGllciA9IDIwOwogI2VuZGlmCiAKIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVy
OjppbnN0YWxsKCkKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRE
ZWNvZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvUGVyc2lz
dGVudERlY29kZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvcGVyc2lz
dGVuY2UvUGVyc2lzdGVudERlY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsNyArOTUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluKG51
bUVsZW1lbnRzICogc2l6ZW9mKFQpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBp
c0lQQ0RlY29kZXIgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJUENEZWNv
ZGVyID0gZmFsc2U7CiAKIHByaXZhdGU6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgYnVm
ZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbihzaXplX3QpIGNvbnN0OwpJbmRleDogU291cmNlL1dU
Ri93dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudEVuY29kZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50RW5jb2Rlci5oCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50RW5jb2Rlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIHZvaWQgdXBkYXRlQ2hlY2tzdW1Gb3JEYXRhKFNIQTEmLCBjb25zdCB1aW50
OF90Kiwgc2l6ZV90KTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHlwZT4gc3RhdGljIHZvaWQg
dXBkYXRlQ2hlY2tzdW1Gb3JOdW1iZXIoU0hBMSYsIFR5cGUpOwogCi0gICAgc3RhdGljIGNvbnN0
IGJvb2wgaXNJUENFbmNvZGVyID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlz
SVBDRW5jb2RlciA9IGZhbHNlOwogCiBwcml2YXRlOgogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIGVuY29kZShib29sKTsKQEAgLTEwMCwxNiArMTAwLDE2IEBAIHByaXZhdGU6CiAgICAgU0hB
MSBtX3NoYTE7CiB9OwogCi10ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDxib29sPiB7
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IDM7IH07Ci10ZW1wbGF0ZSA8PiBzdHJ1Y3Qg
RW5jb2Rlcjo6U2FsdDx1aW50OF90PiB7IHN0YXRpYyBjb25zdCAgdW5zaWduZWQgdmFsdWUgPSA1
OyB9OwotdGVtcGxhdGUgPD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8dWludDE2X3Q+IHsgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gNzsgfTsKLXRlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVy
OjpTYWx0PHVpbnQzMl90PiB7IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IDExOyB9Owot
dGVtcGxhdGUgPD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8dWludDY0X3Q+IHsgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIHZhbHVlID0gMTM7IH07Ci10ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2Fs
dDxpbnQzMl90PiB7IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IDE3OyB9OwotdGVtcGxh
dGUgPD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8aW50NjRfdD4geyBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgdmFsdWUgPSAxOTsgfTsKLXRlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PGZsb2F0
PiB7IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IDIzOyB9OwotdGVtcGxhdGUgPD4gc3Ry
dWN0IEVuY29kZXI6OlNhbHQ8ZG91YmxlPiB7IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9
IDI5OyB9OwotdGVtcGxhdGUgPD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8dWludDhfdCo+IHsgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gMTAxOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IEVu
Y29kZXI6OlNhbHQ8Ym9vbD4geyBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZhbHVlID0gMzsg
fTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PHVpbnQ4X3Q+IHsgc3RhdGljIGNv
bnN0ZXhwciAgdW5zaWduZWQgdmFsdWUgPSA1OyB9OwordGVtcGxhdGUgPD4gc3RydWN0IEVuY29k
ZXI6OlNhbHQ8dWludDE2X3Q+IHsgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB2YWx1ZSA9IDc7
IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDx1aW50MzJfdD4geyBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIHZhbHVlID0gMTE7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5j
b2Rlcjo6U2FsdDx1aW50NjRfdD4geyBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHZhbHVlID0g
MTM7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW5jb2Rlcjo6U2FsdDxpbnQzMl90PiB7IHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgdmFsdWUgPSAxNzsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBF
bmNvZGVyOjpTYWx0PGludDY0X3Q+IHsgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB2YWx1ZSA9
IDE5OyB9OwordGVtcGxhdGUgPD4gc3RydWN0IEVuY29kZXI6OlNhbHQ8ZmxvYXQ+IHsgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCB2YWx1ZSA9IDIzOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IEVu
Y29kZXI6OlNhbHQ8ZG91YmxlPiB7IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgdmFsdWUgPSAy
OTsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbmNvZGVyOjpTYWx0PHVpbnQ4X3QqPiB7IHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgdmFsdWUgPSAxMDE7IH07CiAKIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUeXBlPgogdm9pZCBFbmNvZGVyOjp1cGRhdGVDaGVja3N1bUZvck51bWJlcihTSEExJiBzaGEx
LCBUeXBlIHZhbHVlKQpJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaAkocmV2
aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTQ0LDExICs0NCwxMSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgICAg
IHJldHVybiBhID09IGI7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBz
YWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKICAgICB9
OwogCiAgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXVEY6OkF0b21TdHJpbmc+IDog
U2ltcGxlQ2xhc3NIYXNoVHJhaXRzPFdURjo6QXRvbVN0cmluZz4gewotICAgICAgICBzdGF0aWMg
Y29uc3QgYm9vbCBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiA9IHRydWU7CisgICAgICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiA9IHRydWU7CiAgICAgICAg
IHN0YXRpYyBib29sIGlzRW1wdHlWYWx1ZShjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKICAgICAg
ICAgewogICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmlzTnVsbCgpOwpJbmRleDogU291cmNlL1dU
Ri93dGYvdGV4dC9DU3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9D
U3RyaW5nLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvQ1N0cmlu
Zy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTYsNyArOTYsNyBAQCBXVEZfRVhQT1JUX1BSSVZBVEUg
Ym9vbCBvcGVyYXRvcjwoY29uc3QgCiBzdHJ1Y3QgQ1N0cmluZ0hhc2ggewogICAgIHN0YXRpYyB1
bnNpZ25lZCBoYXNoKGNvbnN0IENTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gc3RyaW5nLmhhc2go
KTsgfQogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBDU3Ry
aW5nJiBhLCBjb25zdCBDU3RyaW5nJiBiKTsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9D
b21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0cnVjdCBEZWZhdWx0SGFzaDsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nQnVpbGRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmNwcAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIG1heENhcGFjaXR5ID0gCiAKIHN0YXRpYyB1bnNpZ25lZCBleHBh
bmRlZENhcGFjaXR5KHVuc2lnbmVkIGNhcGFjaXR5LCB1bnNpZ25lZCByZXF1aXJlZExlbmd0aCkK
IHsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWluaW11bUNhcGFjaXR5ID0gMTY7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtaW5pbXVtQ2FwYWNpdHkgPSAxNjsKICAgICByZXR1
cm4gc3RkOjptYXgocmVxdWlyZWRMZW5ndGgsIHN0ZDo6bWF4KG1pbmltdW1DYXBhY2l0eSwgc3Rk
OjptaW4oY2FwYWNpdHkgKiAyLCBtYXhDYXBhY2l0eSkpKTsKIH0KIApJbmRleDogU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdIYXNoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdIYXNoLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nSGFzaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZAorICogQ29w
eXJpZ2h0IChDKSAyMDA2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkCiAgKiBD
b3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMDkuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNzUsNyArNzUsNyBAQCBuYW1lc3BhY2UgV1RGIHsK
ICAgICAgICAgICAgIHJldHVybiBlcXVhbChhLmltcGwoKSwgYi5pbXBsKCkpOwogICAgICAgICB9
CiAKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSBmYWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVU
b0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CiAgICAgfTsKIAogICAgIHN0cnVjdCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2ggewpAQCAtMTU0LDcgKzE1NCw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
ICAgICAgICAgcmV0dXJuIGEgPT0gYiB8fCBlcXVhbChhLmltcGwoKSwgYi5pbXBsKCkpOwogICAg
ICAgICB9CiAKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlP
ckRlbGV0ZWQgPSBmYWxzZTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0Nv
bXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CiAgICAgfTsKIAogICAgIC8vIFRoaXMgaGFz
aCBjYW4gYmUgdXNlZCBpbiBjYXNlcyB3aGVyZSB0aGUga2V5IGlzIGEgaGFzaCBvZiBhIHN0cmlu
ZywgYnV0IHdlIGRvbid0CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAkocmV2aXNpb24g
MjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwg
KGtub2xsQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC05NCw3ICs5NCw3IEBAIHN0cnVj
dCBTdHJpbmdTdGF0cyB7CiAgICAgdm9pZCByZW1vdmVTdHJpbmcoU3RyaW5nSW1wbCYpOwogICAg
IHZvaWQgcHJpbnRTdGF0cygpOwogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfcHJpbnRT
dHJpbmdTdGF0c0ZyZXF1ZW5jeSA9IDUwMDA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBzX3ByaW50U3RyaW5nU3RhdHNGcmVxdWVuY3kgPSA1MDAwOwogICAgIHN0YXRpYyBzdGQ6OmF0
b21pYzx1bnNpZ25lZD4gc19zdHJpbmdSZW1vdmVzVGlsbFByaW50U3RhdHM7CiAKICAgICBzdGQ6
OmF0b21pYzx1bnNpZ25lZD4gbV9yZWZDYWxsczsKQEAgLTUxOSw4ICs1MTksOCBAQCBwcml2YXRl
OgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBORVZFUl9JTkxJTkUgdW5zaWduZWQgaGFzaFNsb3dD
YXNlKCkgY29uc3Q7CiAKICAgICAvLyBUaGUgYm90dG9tIGJpdCBpbiB0aGUgcmVmIGNvdW50IGlu
ZGljYXRlcyBhIHN0YXRpYyAoaW1tb3J0YWwpIHN0cmluZy4KLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgc19yZWZDb3VudEZsYWdJc1N0YXRpY1N0cmluZyA9IDB4MTsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgc19yZWZDb3VudEluY3JlbWVudCA9IDB4MjsgLy8gVGhpcyBhbGxvd3MgdXMg
dG8gcmVmIC8gZGVyZWYgd2l0aG91dCBkaXN0dXJiaW5nIHRoZSBzdGF0aWMgc3RyaW5nIGZsYWcu
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzX3JlZkNvdW50RmxhZ0lzU3RhdGljU3Ry
aW5nID0gMHgxOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc19yZWZDb3VudEluY3Jl
bWVudCA9IDB4MjsgLy8gVGhpcyBhbGxvd3MgdXMgdG8gcmVmIC8gZGVyZWYgd2l0aG91dCBkaXN0
dXJiaW5nIHRoZSBzdGF0aWMgc3RyaW5nIGZsYWcuCiAKICNpZiBTVFJJTkdfU1RBVFMKICAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFN0cmluZ1N0YXRzIG1fc3RyaW5nU3RhdHM7CkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaAko
cmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJD
b252ZXJzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsOCArNDUsOCBAQCBpbmxpbmUgYm9vbCBpc0No
YXJhY3RlckFsbG93ZWRJbkJhc2UoVUNoCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnRlZ3JhbFR5cGUs
IHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CiBpbmxpbmUgSW50ZWdyYWxUeXBlIHRvSW50ZWdyYWxU
eXBlKGNvbnN0IENoYXJhY3RlclR5cGUqIGRhdGEsIHNpemVfdCBsZW5ndGgsIGJvb2wqIG9rID0g
bnVsbHB0ciwgaW50IGJhc2UgPSAxMCkKIHsKLSAgICBzdGF0aWMgY29uc3QgSW50ZWdyYWxUeXBl
IGludGVncmFsTWF4ID0gc3RkOjpudW1lcmljX2xpbWl0czxJbnRlZ3JhbFR5cGU+OjptYXgoKTsK
LSAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1NpZ25lZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8SW50
ZWdyYWxUeXBlPjo6aXNfc2lnbmVkOworICAgIHN0YXRpYyBjb25zdGV4cHIgSW50ZWdyYWxUeXBl
IGludGVncmFsTWF4ID0gc3RkOjpudW1lcmljX2xpbWl0czxJbnRlZ3JhbFR5cGU+OjptYXgoKTsK
KyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNTaWduZWQgPSBzdGQ6Om51bWVyaWNfbGltaXRz
PEludGVncmFsVHlwZT46OmlzX3NpZ25lZDsKICAgICBjb25zdCBJbnRlZ3JhbFR5cGUgbWF4TXVs
dGlwbGllciA9IGludGVncmFsTWF4IC8gYmFzZTsKIAogICAgIEludGVncmFsVHlwZSB2YWx1ZSA9
IDA7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N5bWJvbFJlZ2lzdHJ5LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9TeW1ib2xSZWdpc3RyeS5oCShyZXZpc2lvbiAyNDk5
NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N5bWJvbFJlZ2lzdHJ5LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1
a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC02OCw3ICs2OSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFN5bWJvbFJl
Z2kKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8U3ltYm9sUmVnaXN0cnlLZXk+
IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPFN5bWJvbFJlZ2lzdHJ5S2V5PiB7Ci0gICAgc3RhdGlj
IGNvbnN0IGJvb2wgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBoYXNJc0VtcHR5VmFsdWVGdW5jdGlvbiA9IHRydWU7CiAgICAgc3RhdGlj
IGJvb2wgaXNFbXB0eVZhbHVlKGNvbnN0IFN5bWJvbFJlZ2lzdHJ5S2V5JiBrZXkpCiAgICAgewog
ICAgICAgICByZXR1cm4ga2V5LmltcGwoKSA9PSBudWxscHRyOwpJbmRleDogU291cmNlL1dURi93
dGYvdGV4dC9UZXh0U3RyZWFtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0
L1RleHRTdHJlYW0uY3BwCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0
L1RleHRTdHJlYW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwOCwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDExICszMSwxMSBA
QAogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIGNvbnN0IHNpemVfdCBwcmludEJ1ZmZlclNp
emUgPSAxMDA7IC8vIGxhcmdlIGVub3VnaCBmb3IgYW55IGludGVnZXIgb3IgZmxvYXRpbmcgcG9p
bnQgdmFsdWUgaW4gc3RyaW5nIGZvcm1hdCwgaW5jbHVkaW5nIHRyYWlsaW5nIG51bGwgY2hhcmFj
dGVyCitzdGF0aWMgY29uc3RleHByIHNpemVfdCBwcmludEJ1ZmZlclNpemUgPSAxMDA7IC8vIGxh
cmdlIGVub3VnaCBmb3IgYW55IGludGVnZXIgb3IgZmxvYXRpbmcgcG9pbnQgdmFsdWUgaW4gc3Ry
aW5nIGZvcm1hdCwgaW5jbHVkaW5nIHRyYWlsaW5nIG51bGwgY2hhcmFjdGVyCiAKIHN0YXRpYyBp
bmxpbmUgYm9vbCBoYXNGcmFjdGlvbnMoZG91YmxlIHZhbCkKIHsKLSAgICBzdGF0aWMgY29uc3Qg
ZG91YmxlIHNfZXBzaWxvbiA9IDAuMDAwMTsKKyAgICBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBz
X2Vwc2lsb24gPSAwLjAwMDE7CiAgICAgaW50IGl2YWwgPSBzdGF0aWNfY2FzdDxpbnQ+KHZhbCk7
CiAgICAgZG91YmxlIGR2YWwgPSBzdGF0aWNfY2FzdDxkb3VibGU+KGl2YWwpOwogICAgIHJldHVy
biBmYWJzKHZhbCAtIGR2YWwpID4gc19lcHNpbG9uOwpJbmRleDogU291cmNlL1dURi93dGYvdGV4
dC9XVEZTdHJpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmlu
Zy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIChDKSAxOTk5IExhcnMgS25v
bGwgKGtub2xsQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ0NCw4ICs0
NDQsOCBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgY29uc3QgU3RyaW5nJiBudWxsU3RyCiB0ZW1wbGF0
ZTx0eXBlbmFtZT4gc3RydWN0IERlZmF1bHRIYXNoOwogdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVs
dEhhc2g8U3RyaW5nPiB7IHVzaW5nIEhhc2ggPSBTdHJpbmdIYXNoOyB9OwogdGVtcGxhdGU8PiBz
dHJ1Y3QgVmVjdG9yVHJhaXRzPFN0cmluZz4gOiBWZWN0b3JUcmFpdHNCYXNlPGZhbHNlLCB2b2lk
PiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSB0cnVl
OwotICAgIHN0YXRpYyBjb25zdCBib29sIGNhbk1vdmVXaXRoTWVtY3B5ID0gdHJ1ZTsKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgY2FuSW5pdGlhbGl6ZVdpdGhNZW1zZXQgPSB0cnVlOworICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBjYW5Nb3ZlV2l0aE1lbWNweSA9IHRydWU7CiB9OwogCiB0
ZW1wbGF0ZTw+IHN0cnVjdCBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uVHJhaXQ8U3RyaW5nPiB7
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L2NvY29hL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJu
YWxJQ1VDb2NvYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9jb2NvYS9U
ZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVQ29jb2EuY3BwCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvV1RGL3d0Zi90ZXh0L2NvY29hL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VD
b2NvYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwNy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtNDUsNyArNDUsNyBAQCBUZXh0QnJlYWtJdGVyYXRvcjo6VGV4dEJy
ZWFrSXRlcmF0b3IoU3RyCiB7CiB9CiAKLXN0YXRpYyBjb25zdCBpbnQgbWF4TG9jYWxlU3RyaW5n
TGVuZ3RoID0gMzI7CitzdGF0aWMgY29uc3RleHByIGludCBtYXhMb2NhbGVTdHJpbmdMZW5ndGgg
PSAzMjsKIAogc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHRleHRCcmVha0xv
Y2FsZVByZWZlcmVuY2UoKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ5OTc2KQorKysg
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTIgQEAK
KzIwMTktMDktMTcgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFVz
ZSBjb25zdGV4cHIgaW5zdGVhZCBvZiBjb25zdCBpbiBzeW1ib2wgZGVmaW5pdGlvbnMgdGhhdCBh
cmUgb2J2aW91c2x5IGNvbnN0ZXhwci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMTg3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yQmFzZS5oOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93UHJvcGVydGllcy5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIp
OgorICAgICAgICAoR2VuZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250ZXh0Lmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0Lmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5o
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmg6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
RGVsZXRlck5vSWRlbnRpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEdldHRlckNhbGxXaXRoLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmg6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZp
ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmg6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlckFuZFNldHRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmg6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9w
ZXJ0aWVzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaDoKKyAgICAg
ICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGlt
ZV9hcnJheS5oOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5oOgorICAgICAgICAq
IGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgorCiAyMDE5LTA5LTE3ICBOaWtvbGFzIFppbW1lcm1h
bm4gIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAKICAgICAgICAgU1ZHIDxhbmltYXRlTW90aW9uPiBk
b2VzIG5vdCByZXNldCB0aGUgZWxlbWVudCB0byBpdHMgZmlyc3QgYW5pbWF0aW9uIGZyYW1lIGlm
IGl0cyBmaWxsIGlzICJyZW1vdmUiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUNvbnN0cnVjdG9yQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQ29uc3RydWN0b3JCYXNlLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JCYXNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMjAxNSwgMjAxNiBDYW5v
biBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0y
OCw3ICsyOCw3IEBAIGNsYXNzIEpTRE9NQ29uc3RydWN0b3JCYXNlIDogcHVibGljIEpTRE8KIHB1
YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNET01PYmplY3Q7CiAKLSAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SW1w
bGVtZW50c0hhc0luc3RhbmNlIHwgSlNDOjpJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlIHwg
SlNDOjpPdmVycmlkZXNHZXRDYWxsRGF0YTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkltcGxlbWVudHNI
YXNJbnN0YW5jZSB8IEpTQzo6SW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSB8IEpTQzo6T3Zl
cnJpZGVzR2V0Q2FsbERhdGE7CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogCiBw
cm90ZWN0ZWQ6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1By
b3BlcnRpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd1Byb3BlcnRpZXMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dQcm9wZXJ0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDksNyAr
NDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3Bl
cnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlND
OjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5U2xvdCYpOwogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1w
dXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90
QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBKU0M6OklzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0OworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2Ug
fCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJ
c05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6SXNJbW11
dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3Q7CiAKIHByb3RlY3RlZDoKICAgICBKU0RPTVdpbmRv
d1Byb3BlcnRpZXMoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNDOjpKU0dsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkp
CkBAIC0yNjE0LDcgKzI2MTQsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICB9XG5cbiIpOwogICAgIH0KIAotICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlO1xu
XG4iKSBpZiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKTsKKyAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFs
c2U7XG5cbiIpIGlmIElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpOwogCiAgICAgJHN0cnVj
dHVyZUZsYWdzeyJKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGUifSA9IDEgaWYgSW5zdGFuY2VQ
cm9wZXJ0eUNvdW50KCRpbnRlcmZhY2UpID4gMDsKICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6
TmV3SW1wdXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRzIn0gPSAxIGlmICRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+e05ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50c307CkBA
IC0yODgyLDcgKzI4ODIsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAjIHN0cnVjdHVyZSBm
bGFncwogICAgIGlmICglc3RydWN0dXJlRmxhZ3MpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgInB1YmxpYzpcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
Iik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIik7CiAgICAgICAg
IGZvcmVhY2ggbXkgJHN0cnVjdHVyZUZsYWcgKHNvcnQgKGtleXMgJXN0cnVjdHVyZUZsYWdzKSkg
ewogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiB8ICIgLiAkc3RydWN0dXJlRmxh
Zyk7CiAgICAgICAgIH0KQEAgLTcxMzcsNyArNzEzNyw3IEBAIHN1YiBHZW5lcmF0ZVByb3RvdHlw
ZURlY2xhcmF0aW9uCiAgICAgIyBzdHJ1Y3R1cmUgZmxhZ3MKICAgICBpZiAoJXN0cnVjdHVyZUZs
YWdzKSB7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInB1YmxpYzpcbiIpOwotICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MiKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFncyIpOwogICAgICAgICBmb3JlYWNoIG15ICRzdHJ1Y3R1cmVGbGFnIChz
b3J0IChrZXlzICVzdHJ1Y3R1cmVGbGFncykpIHsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiB8ICIgLiAkc3RydWN0dXJlRmxhZyk7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0QWN0aXZlRE9NT2JqZWN0LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1
ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwog
ICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1B1dFByb3BlcnR5U2VjdXJpdHlDaGVjayB8IEpT
Qzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1B1dFByb3Bl
cnR5U2VjdXJpdHlDaGVjayB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIHByb3RlY3Rl
ZDoKICAgICBKU1Rlc3RBY3RpdmVET01PYmplY3QoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2Jh
bE9iamVjdCYsIFJlZjxUZXN0QWN0aXZlRE9NT2JqZWN0PiYmKTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RW5hYmxlZEJ5U2V0dGluZy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXIm
KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiBwcm90ZWN0ZWQ6CiAgICAgSlNU
ZXN0RW5hYmxlZEJ5U2V0dGluZyhKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Jiwg
UmVmPFRlc3RFbmFibGVkQnlTZXR0aW5nPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250ZXh0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJs
ZWRGb3JDb250ZXh0LmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkRm9yQ29udGV4dC5oCSh3b3JraW5nIGNv
cHkpCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdl
dENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAg
c3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0RW5h
YmxlZEZvckNvbnRleHQoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxU
ZXN0RW5hYmxlZEZvckNvbnRleHQ+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAko
cmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVzdEV2ZW50VGFyZ2V0Jj4oQmFz
ZTo6d3JhcHBlZCgpKTsKICAgICB9CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3Bl
cnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3du
UHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6
Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9w
ZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93
blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6TWFzcXVl
cmFkZXNBc1VuZGVmaW5lZCB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlND
OjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdEV2ZW50
VGFyZ2V0KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEV2ZW50
VGFyZ2V0PiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuaAkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEds
b2JhbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rl
c3RydWN0aW9uID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1
Y3Rpb24gPSBmYWxzZTsKIAogICAgIHN0YXRpYyBUZXN0R2xvYmFsT2JqZWN0KiB0b1dyYXBwZWQo
SlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpT
Q2VsbCopOwpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1
ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwog
ICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogcHJvdGVjdGVkOgogICAgIEpTVGVz
dEdsb2JhbE9iamVjdChKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRl
c3RHbG9iYWxPYmplY3Q+JiYpOwogCkBAIC0xMDQsNyArMTA0LDcgQEAgcHJpdmF0ZToKICAgICB7
CiAgICAgfQogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZTsKIH07CiAKIHRlbXBsYXRl
PD4gc3RydWN0IEpTRE9NV3JhcHBlckNvbnZlcnRlclRyYWl0czxUZXN0R2xvYmFsT2JqZWN0PiB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmgJ
KHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3Ry
dWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMg
dm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVu
TGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6
Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpJbnRlcmNlcHRz
R2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFt
ZXM7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcihKU0M6
OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6
OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwg
SlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SW50ZXJjZXB0c0dl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVz
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhF
dmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90
IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgogICAgIEpTVGVz
dEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xv
YmFsT2JqZWN0JiwgUmVmPFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24+JiYpOwog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0
Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBz
dGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2
ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpJbnRl
cmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwg
SlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3Bl
cnR5TmFtZXM7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllcj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmgJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyAr
NTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihK
U0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lkIGFu
YWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlND
OjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3Ra
ZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dl
dFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0lt
cHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xv
dEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgog
ICAgIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllcihKU0M6OlN0cnVjdHVy
ZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXI+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3
LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0
b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9p
ZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVibGljOgotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8
IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElz
Tm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlk
ZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90
SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKIHByb3RlY3Rl
ZDoKICAgICBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbihKU0M6
OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5oCShyZXZpc2lv
biAyNDk5NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25z
dHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRp
YyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNl
bmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVu
Z3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92
ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0
eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJv
dGVjdGVkOgogICAgIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKEpT
Qzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRp
Zmllci5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpI
ZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90
SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwg
SlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNO
b3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXM7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWREZWxldGVyTm9J
ZGVudGlmaWVyKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5h
bWVkRGVsZXRlck5vSWRlbnRpZmllcj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxl
dGVyVGhyb3dpbmdFeGNlcHRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwg
Y29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFw
KEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okdl
dE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNl
cHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlND
OjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5
TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclBy
b3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhF
dmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90
IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgogICAgIEpTVGVz
dE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9i
YWxPYmplY3QmLCBSZWY8VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uPiYmKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
RGVsZXRlcldpdGhJZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmgJ
KHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5oCSh3b3JraW5nIGNvcHkpCkBA
IC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0
cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGlj
IHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2Vu
Y2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5n
dGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3Zl
cnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5
U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJv
cGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CiBwcm90
ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIoSlNDOjpTdHJ1Y3R1
cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZp
ZXI+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXIuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBK
U0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBB
bmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0lt
cHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xv
dEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6
OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFpl
cm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5k
ZXhlZEdldHRlcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RO
YW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcj4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkR2V0dGVyQ2FsbFdpdGguaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguaAko
d29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6
SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVj
dCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5
emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJl
Rm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlND
OjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50
ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8
IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9w
ZXJ0eU5hbWVzOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgoSlND
OjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWRHZXR0ZXJDYWxs
V2l0aD4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRp
Zmllci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRD
b25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0
YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlB
YnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVu
TGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6
Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9w
ZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93
blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwog
cHJvdGVjdGVkOgogICAgIEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyKEpTQzo6U3RydWN0
dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVy
PiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRp
Zmllci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5oCSh3b3JraW5nIGNv
cHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdl
dENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAg
c3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0
eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldo
ZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpT
Qzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blBy
b3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0
T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7
CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllcihKU0M6OlN0
cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3ROYW1lZEdldHRlcldpdGhJZGVu
dGlmaWVyPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVu
dGlmaWVyLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5oCSh3b3JraW5nIGNv
cHkpCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdl
dENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAg
c3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0
eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldo
ZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpT
Qzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6OkdldE93blBy
b3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0
T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7
CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIoSlNDOjpTdHJ1
Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZp
ZXI+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93
aW5nRXhjZXB0aW9uLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6
OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFs
eXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVy
ZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5
SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpT
Qzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6Oklu
dGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8g
fCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5hbWVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb24+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBK
U0M6OkhlYXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0
eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2Vu
Y2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5n
dGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3Zl
cnJpZGVzR2V0UHJvcGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3ROYW1lZFNldHRl
cldpdGhJZGVudGlmaWVyKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmgJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpW
TSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXpl
SGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlND
OjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50
ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8
IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9w
ZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVG
b3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBK
U1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyKEpTQzo6U3RydWN0dXJlKiwgSlNET01H
bG9iYWxPYmplY3QmLCBSZWY8VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI+JiYpOwog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQW5kU2V0dGVyLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyQW5kU2V0dGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0Nl
bGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Q
cm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVz
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0
eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldo
ZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpT
Qzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyKEpTQzo6U3RydWN0dXJlKiwgSlNET01H
bG9iYWxPYmplY3QmLCBSZWY8VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0
ZXI+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldp
dGhPdmVycmlkZUJ1aWx0aW5zLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1
aWx0aW5zLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6
OkhlYXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNs
b3RJc0ltcHVyZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVu
V2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
SlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0T3du
UHJvcGVydHlTbG90SXNJbXB1cmUgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAg
ICBKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zKEpTQzo6U3RydWN0dXJlKiwg
SlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRp
bnM+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVu
Zm9yZ2FibGVQcm9wZXJ0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNv
bnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChK
U0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRP
d25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SGFzU3RhdGlj
UHJvcGVydHlUYWJsZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhF
dmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90
IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6R2V0
T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6Okhhc1N0YXRp
Y1Byb3BlcnR5VGFibGUgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKIHByb3RlY3RlZDoKICAgICBKU1Rl
c3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcyhKU0M6OlN0cnVjdHVyZSosIEpT
RE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVy
dGllcz4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVp
bHRpbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlk
ZUJ1aWx0aW5zLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGll
c0FuZE92ZXJyaWRlQnVpbHRpbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwg
Y29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFw
KEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okdl
dE93blByb3BlcnR5U2xvdElzSW1wdXJlIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlIHwg
SlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNO
b3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXM7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJ
c0ltcHVyZSB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZSB8IEpTQzo6SW50ZXJjZXB0c0dl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVz
OwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0
aWVzQW5kT3ZlcnJpZGVCdWlsdGlucyhKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0
JiwgUmVmPFRlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRl
QnVpbHRpbnM+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgdGVz
dFN0YXRpY0N1c3RvbVByb21pc2VGdW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSYsIFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYpOwogICAgIEpTQzo6SlNWYWx1ZSB0ZXN0Q3VzdG9tUmV0dXJuc093blByb21p
c2VGdW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSYpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNT
dGF0aWNQcm9wZXJ0eVRhYmxlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRDYWxsRGF0YSB8
IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9w
ZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzU3RhdGljUHJvcGVydHlUYWJsZSB8IEpT
Qzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90
WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0Q2FsbERhdGEgfCBKU0M6Ok92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKIHByb3RlY3RlZDoK
ICAgICBKU1Rlc3RPYmooSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxU
ZXN0T2JqPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5oCShyZXZp
c2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0m
LCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhl
YXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6
R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlIHwgSlNDOjpJbnRlcmNlcHRzR2V0
T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXM7
CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0T3ZlcnJpZGVCdWlsdGlucyhKU0M6OlN0cnVjdHVyZSos
IEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RPdmVycmlkZUJ1aWx0aW5zPiYmKTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbklu
dGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFj
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
SlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFw
QW5hbHl6ZXImKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0
Q2FsbERhdGEgfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdDsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJ
c05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldENhbGxEYXRhIHwgSlNDOjpPdmVycmlkZXNHZXRP
d25Qcm9wZXJ0eVNsb3Q7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0UGx1Z2luSW50ZXJmYWNlKEpT
Qzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdFBsdWdpbkludGVyZmFj
ZT4mJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RUeXBlZGVmcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAkod29y
a2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCop
OwogICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVy
Jik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGU7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzIHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwogcHJvdGVjdGVkOgogICAgIEpT
VGVzdFR5cGVkZWZzKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVz
dFR5cGVkZWZzPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJy
YXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5o
CShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJh
eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwMywgMjAwOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDAzLTIwMTkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IGNsYXNzIFJ1bnRpbWVBcnJheSA6IHB1YmxpYyBKU0FycmF5IHsKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEpTQXJyYXkgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFpl
cm8gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dl
dE93blByb3BlcnR5U2xvdCB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZl
bldoZW5MZW5ndGhJc05vdFplcm8gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogCiAgICAg
c3RhdGljIFJ1bnRpbWVBcnJheSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgQmluZGluZ3M6OkFy
cmF5KiBhcnJheSkKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRo
b2QuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
bWV0aG9kLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDAzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDAzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogY2xhc3MgV0VCQ09SRV9FWFBPUlQgUnVudGltZU1ldGhvZCA6IHB1YmxpYyBJbnRlcm5hbEZ1
bmN0aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKLSAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldENhbGxEYXRh
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dl
dENhbGxEYXRhOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIEpTQzo6U3Vic3Bh
Y2VBY2Nlc3M+CiAgICAgc3RhdGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAkocmV2aXNpb24gMjQ5OTc2
KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA4LCAyMDA5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMy0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgQmluZGluZ3MgewogY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgUnVudGltZU9iamVjdCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVj
dCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Rlc3RydWN0aWJsZU9iamVjdCBCYXNlOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlO
YW1lcyB8IE92ZXJyaWRlc0dldENhbGxEYXRhOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBPdmVycmlkZXNHZXRD
YWxsRGF0YTsKIAogICAgIHN0YXRpYyBSdW50aW1lT2JqZWN0KiBjcmVhdGUoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRyPEluc3RhbmNlPiYmIGluc3RhbmNlKQogICAgIHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCShyZXZpc2lvbiAy
NDk5NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiBjbGFzcyBPYmpjRmFsbGJh
Y2tPYmplY3RJbXAgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogcHVibGljOgogICAg
IHR5cGVkZWYgSlNEZXN0cnVjdGlibGVPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dl
dE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldENhbGxEYXRhOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldENhbGxEYXRhOwogCiAgICAg
c3RhdGljIE9iamNGYWxsYmFja09iamVjdEltcCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgT2JqY0luc3RhbmNlKiBpbnN0YW5jZSwgY29uc3Qg
U3RyaW5nJiBwcm9wZXJ0eU5hbWUpCiAgICAgewpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0OTk3
NikKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTktMDktMTcgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAg
ICAgIFVzZSBjb25zdGV4cHIgaW5zdGVhZCBvZiBjb25zdCBpbiBzeW1ib2wgZGVmaW5pdGlvbnMg
dGhhdCBhcmUgb2J2aW91c2x5IGNvbnN0ZXhwci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTg3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBP
YmplY3QuaDoKKwogMjAxOS0wOS0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5IGRvZXMgbm90IG5lZWQgc2Vzc2lv
bklEcwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIE5QUnVudGltZU9iamVjdE1hcDsKIGNsYXNzIEpTTlBP
YmplY3QgZmluYWwgOiBwdWJsaWMgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBK
U0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVy
dHlOYW1lcyB8IEpTQzo6T3ZlcnJpZGVzR2V0Q2FsbERhdGE7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSlNDOjpP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFt
ZXMgfCBKU0M6Ok92ZXJyaWRlc0dldENhbGxEYXRhOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
Q2VsbFR5cGUsIEpTQzo6U3Vic3BhY2VBY2Nlc3M+CiAgICAgc3RhdGljIEpTQzo6SXNvU3Vic3Bh
Y2UqIHN1YnNwYWNlRm9yKEpTQzo6Vk0mIHZtKQpJbmRleDogU291cmNlL2JtYWxsb2MvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ5
OTc2KQorKysgU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTktMDktMTcgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisg
ICAgICAgIFVzZSBjb25zdGV4cHIgaW5zdGVhZCBvZiBjb25zdCBpbiBzeW1ib2wgZGVmaW5pdGlv
bnMgdGhhdCBhcmUgb2J2aW91c2x5IGNvbnN0ZXhwci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTg3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogYm1hbGxvYy9BdmFpbGFibGVNZW1vcnkuY3BwOgor
ICAgICAgICAqIGJtYWxsb2MvSXNvVExTLmg6CisgICAgICAgICogYm1hbGxvYy9NYXAuaDoKKyAg
ICAgICAgKiBibWFsbG9jL011dGV4LmNwcDoKKyAgICAgICAgKGJtYWxsb2M6Ok11dGV4Ojpsb2Nr
U2xvd0Nhc2UpOgorICAgICAgICAqIGJtYWxsb2MvUGVyVGhyZWFkLmg6CisgICAgICAgICogYm1h
bGxvYy9WZWN0b3IuaDoKKyAgICAgICAgKiBibWFsbG9jL1pvbmUuaDoKKwogMjAxOS0wOS0xMyAg
TWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgV2Ugc2hvdWxkIG5ldmVy
IGZhaWwgdG8gYWxsb2NhdGUgVkEgZm9yIHRoZSBHaWdhY2FnZS4KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5jcHAJKHJldmlzaW9uIDI0OTk3NikKKysrIFNv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTMsNyArNTMsNyBAQAogCiBuYW1lc3BhY2UgYm1hbGxvYyB7CiAKLXN0YXRpYyBjb25zdCBz
aXplX3QgYXZhaWxhYmxlTWVtb3J5R3Vlc3MgPSA1MTIgKiBibWFsbG9jOjpNQjsKK3N0YXRpYyBj
b25zdGV4cHIgc2l6ZV90IGF2YWlsYWJsZU1lbW9yeUd1ZXNzID0gNTEyICogYm1hbGxvYzo6TUI7
CiAKICNpZiBCT1MoREFSV0lOKQogc3RhdGljIHNpemVfdCBtZW1vcnlTaXplQWNjb3JkaW5nVG9L
ZXJuZWwoKQpJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Jc29UTFMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0lzb1RMUy5oCShyZXZpc2lvbiAyNDk5NzYpCisr
KyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0lzb1RMUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDks
NyArMTA5LDcgQEAgcHJpdmF0ZToKICAgICBjaGFyIG1fZGF0YVsxXTsKIAogI2lmIEhBVkVfUFRI
UkVBRF9NQUNIREVQX0gKLSAgICBzdGF0aWMgY29uc3QgcHRocmVhZF9rZXlfdCB0bHNLZXkgPSBf
X1BUS19GUkFNRVdPUktfSkFWQVNDUklQVENPUkVfS0VZMTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHB0aHJlYWRfa2V5X3QgdGxzS2V5ID0gX19QVEtfRlJBTUVXT1JLX0pBVkFTQ1JJUFRDT1JFX0tF
WTE7CiAjZWxzZQogICAgIEJFWFBPUlQgc3RhdGljIGJvb2wgc19kaWRJbml0aWFsaXplOwogICAg
IEJFWFBPUlQgc3RhdGljIHB0aHJlYWRfa2V5X3Qgc190bHNLZXk7CkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL01hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2Mv
TWFwLmgJKHJldmlzaW9uIDI0OTk3NikKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTWFwLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTgwLDEwICs4MCwxMCBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2
YXRlOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtaW5DYXBhY2l0eSA9IDE2OwotICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhMb2FkID0gMjsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgcmVoYXNoTG9hZCA9IDQ7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1pbkxvYWQgPSA4
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWluQ2FwYWNpdHkgPSAxNjsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heExvYWQgPSAyOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgcmVoYXNoTG9hZCA9IDQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBtaW5Mb2FkID0gODsKIAogICAgIGJvb2wgc2hvdWxkR3JvdygpIHsgcmV0dXJuIG1fa2V5Q291
bnQgKiBtYXhMb2FkID49IGNhcGFjaXR5KCk7IH0KICAgICBib29sIHNob3VsZFNocmluaygpIHsg
cmV0dXJuIG1fa2V5Q291bnQgKiBtaW5Mb2FkIDw9IGNhcGFjaXR5KCkgJiYgY2FwYWNpdHkoKSA+
IG1pbkNhcGFjaXR5OyB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL011dGV4LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL011dGV4LmNwcAkocmV2aXNpb24g
MjQ5OTc2KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9NdXRleC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDcgKzM2LDcgQEAgdm9pZCBNdXRleDo6bG9ja1Nsb3dDYXNlKCkKICAgICAvLyBU
aGUgbG9uZ2VzdCBjcml0aWNhbCBzZWN0aW9uIGluIGJtYWxsb2MgaXMgbXVjaCBzaG9ydGVyIHRo
YW4gdGhlCiAgICAgLy8gdGltZSBpdCB0YWtlcyB0byBtYWtlIGEgc3lzdGVtIGNhbGwgdG8geWll
bGQgdG8gdGhlIE9TIHNjaGVkdWxlci4KICAgICAvLyBTbywgd2UgdHJ5IGFnYWluIGEgbG90IGJl
Zm9yZSB3ZSB5aWVsZC4KLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGFMb3QgPSAyNTY7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBzaXplX3QgYUxvdCA9IDI1NjsKICAgICAKICAgICBpZiAoIW1faXNT
cGlubmluZy5leGNoYW5nZSh0cnVlKSkgewogICAgICAgICBhdXRvIGNsZWFyID0gbWFrZVNjb3Bl
RXhpdChbJl0geyBtX2lzU3Bpbm5pbmcuc3RvcmUoZmFsc2UpOyB9KTsKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvUGVyVGhyZWFkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9QZXJUaHJlYWQuaAkocmV2aXNpb24gMjQ5OTc2KQorKysgU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9QZXJUaHJlYWQuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgUGVyVGhyZWFkU3RvCiAvLyBGb3Igbm93LCB3ZSBvbmx5
IHN1cHBvcnQgUGVyVGhyZWFkPFBlckhlYXBLaW5kPENhY2hlPj4uIFdlIGNhbiBleHBhbmQgdG8g
b3RoZXIgdHlwZXMgYnkKIC8vIHVzaW5nIG1vcmUga2V5cy4KIHRlbXBsYXRlPD4gc3RydWN0IFBl
clRocmVhZFN0b3JhZ2U8UGVySGVhcEtpbmQ8Q2FjaGU+PiB7Ci0gICAgc3RhdGljIGNvbnN0IHB0
aHJlYWRfa2V5X3Qga2V5ID0gX19QVEtfRlJBTUVXT1JLX0pBVkFTQ1JJUFRDT1JFX0tFWTA7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBwdGhyZWFkX2tleV90IGtleSA9IF9fUFRLX0ZSQU1FV09SS19K
QVZBU0NSSVBUQ09SRV9LRVkwOwogCiAgICAgc3RhdGljIHZvaWQqIGdldCgpCiAgICAgewpJbmRl
eDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL1ZlY3Rvci5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL1ZlY3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC03Miw4ICs3Miw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNocmlua1RvRml0KCk7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIGNv
bnN0IHNpemVfdCBncm93RmFjdG9yID0gMjsKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHNocmlu
a0ZhY3RvciA9IDQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgZ3Jvd0ZhY3RvciA9IDI7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qgc2hyaW5rRmFjdG9yID0gNDsKICAgICBzdGF0
aWMgc2l6ZV90IGluaXRpYWxDYXBhY2l0eSgpIHsgcmV0dXJuIHZtUGFnZVNpemUoKSAvIHNpemVv
ZihUKTsgfQogCiAgICAgdm9pZCBncm93Q2FwYWNpdHkoKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvWm9uZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvWm9u
ZS5oCShyZXZpc2lvbiAyNDk5NzYpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1pvbmUuaAko
d29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBDaHVuazsKIGNsYXNzIFpvbmUg
OiBwdWJsaWMgbWFsbG9jX3pvbmVfdCB7CiBwdWJsaWM6CiAgICAgLy8gRW5vdWdoIGNhcGFjaXR5
IHRvIHRyYWNrIGEgNjRHQiBoZWFwLCBzbyBwcm9iYWJseSBlbm91Z2ggZm9yIGFueXRoaW5nLgot
ICAgIHN0YXRpYyBjb25zdCBzaXplX3QgY2FwYWNpdHkgPSAyMDQ4OworICAgIHN0YXRpYyBjb25z
dGV4cHIgc2l6ZV90IGNhcGFjaXR5ID0gMjA0ODsKIAogICAgIFpvbmUoc3RkOjpsb2NrX2d1YXJk
PE11dGV4PiYpOwogICAgIFpvbmUodGFza190LCBtZW1vcnlfcmVhZGVyX3QsIHZtX2FkZHJlc3Nf
dCk7Cg==
</data>
<flag name="review"
          id="394659"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>