<?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>164761</bug_id>
          
          <creation_ts>2016-11-14 20:12:10 -0800</creation_ts>
          <short_desc>[JSC] WTF::TemporaryChange with WTF::SetForScope</short_desc>
          <delta_ts>2016-12-23 11:17:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>saam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1251336</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-14 20:12:10 -0800</bug_when>
    <thetext>It&apos;s completely the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251384</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-11-14 22:49:59 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; It&apos;s completely the same.

Lol.

FWIW, I prefer the name &quot;SetForScope&quot; over &quot;TemporaryChange&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252232</commentid>
    <comment_count>2</comment_count>
      <attachid>295033</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-16 23:20:29 -0800</bug_when>
    <thetext>Created attachment 295033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252234</commentid>
    <comment_count>3</comment_count>
      <attachid>295035</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-16 23:45:39 -0800</bug_when>
    <thetext>Created attachment 295035
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252240</commentid>
    <comment_count>4</comment_count>
      <attachid>295038</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-17 00:17:15 -0800</bug_when>
    <thetext>Created attachment 295038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252241</commentid>
    <comment_count>5</comment_count>
      <attachid>295038</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-11-17 00:23:04 -0800</bug_when>
    <thetext>Comment on attachment 295038
Patch

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

r=me

&gt; Source/WTF/wtf/SetForScope.h:51
&gt; +    SetForScope(T&amp; scopedVariable, T newValue)

Might be nice to use forward semantics here.

&gt; Source/WTF/wtf/SetForScope.h:59
&gt; +        m_scopedVariable = m_originalValue;

Maybe move semantics?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252244</commentid>
    <comment_count>6</comment_count>
      <attachid>295038</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-17 00:43:38 -0800</bug_when>
    <thetext>Comment on attachment 295038
Patch

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

Thanks!

&gt;&gt; Source/WTF/wtf/SetForScope.h:51
&gt;&gt; +    SetForScope(T&amp; scopedVariable, T newValue)
&gt; 
&gt; Might be nice to use forward semantics here.

Yeah, fixed. Using argument deduction and std::forward here.

&gt;&gt; Source/WTF/wtf/SetForScope.h:59
&gt;&gt; +        m_scopedVariable = m_originalValue;
&gt; 
&gt; Maybe move semantics?

Yeah, we can use `WTFMove()`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252247</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-17 00:48:44 -0800</bug_when>
    <thetext>Committed r208841: &lt;http://trac.webkit.org/changeset/208841&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262452</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-12-22 16:34:54 -0800</bug_when>
    <thetext>I think this rename should have been communicated with webkit-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262504</commentid>
    <comment_count>9</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-12-22 18:20:48 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I think this rename should have been communicated with webkit-dev.

Fair enough. We can always name it back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262505</commentid>
    <comment_count>10</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-12-22 18:23:54 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; I think this rename should have been communicated with webkit-dev.
&gt; 
&gt; Fair enough. We can always name it back.

I&apos;ll send out an email to webkit-dev now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262585</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-12-23 11:17:07 -0800</bug_when>
    <thetext>Would have also been nice to have some discussion about naming. This comes through as picking the JSC name by fiat.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295033</attachid>
            <date>2016-11-16 23:20:29 -0800</date>
            <delta_ts>2016-11-16 23:45:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164761-20161116232024.patch</filename>
            <type>text/plain</type>
            <size>100227</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MGUyZWUwOTUzZWFlOTg2NmViMDhlOGRlYmQwZjUxNWIyOGI3OTY4Li5kNjM0ZDkwMWI1M2FhNmQ1
NTJhMGYwNTBjMzU0NzljMGE4NmE4MTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxNi0xMS0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBXVEY6OlRlbXBvcmFyeUNoYW5nZSB3aXRoIFdURjo6U2V0
Rm9yU2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NDc2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogYnl0ZWNvbXBp
bGVyL1NldEZvclNjb3BlLmg6IFJlbW92ZWQuCisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIu
Y3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHA6
CisgICAgICAgIChJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpkaXNwYXRjaCk6CisgICAg
ICAgICogaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rv
cjo6U2NyaXB0RGVidWdTZXJ2ZXI6OmRpc3BhdGNoQnJlYWtwb2ludEFjdGlvbkxvZyk6CisgICAg
ICAgIChJbnNwZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRjaEJyZWFrcG9pbnRBY3Rp
b25Tb3VuZCk6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRj
aEJyZWFrcG9pbnRBY3Rpb25Qcm9iZSk6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERlYnVn
U2VydmVyOjpzb3VyY2VQYXJzZWQpOgorICAgICAgICAoSW5zcGVjdG9yOjpTY3JpcHREZWJ1Z1Nl
cnZlcjo6ZGlzcGF0Y2hGdW5jdGlvblRvTGlzdGVuZXJzKToKKyAgICAgICAgKiBwYXJzZXIvUGFy
c2VyLmNwcDoKKwogMjAxNi0xMS0xNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgRXhjZXB0aW9uRnV6eiBuZWVkcyB0byBwbGFjYXRlIGV4Y2VwdGlvbiBjaGVjayB2
ZXJpZmljYXRpb24gYmVmb3JlIG92ZXJ3cml0aW5nIGEgdGhyb3duIGV4Y2VwdGlvbi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXgg
Y2YzYzYyNDdhNmRlNzlkZTk5YzlmZWJhN2M2Y2JkMjVlMGIyNTMxNC4uZGY1ZWY3NmMwNzdmOWEz
ZGZhY2FjNjZlMTY2MjYyNjUzYzQ5ZmM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAxNi0xMS0x
NiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAorICAgICAgICBbSlND
XSBXVEY6OlRlbXBvcmFyeUNoYW5nZSB3aXRoIFdURjo6U2V0Rm9yU2NvcGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDc2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEphdmFTY3JpcHRDb3JlJ3MgYnl0
ZWNvbXBpbGVyL1NldEZvclNjb3BlLmggaXMgY29tcGxldGVseSB0aGUgc2FtZQorICAgICAgICB0
byBXVEY6OlRlbXBvcmFyeUNoYW5nZS4gU2V0Rm9yU2NvcGUgc291bmRzIGJldHRlciBuYW1lIHNp
bmNlIGl0CisgICAgICAgIHNheXMgdGhhdCB0aGlzIG9iamVjdCB3b3JrcyBhcyBTY29wZS4KKwor
ICAgICAgICBXZSByZW5hbWUgV1RGOjpUZW1wb3JhcnlDaGFuZ2UgdG8gV1RGOjpTZXRGb3JTY29w
ZS4gQW5kIHJlcGxhY2UKKyAgICAgICAgYWxsIHRoZSB1c2UgdG8gdGhpcyBXVEY6OlNldEZvclNj
b3BlLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogd3RmL1NldEZvclNjb3BlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9UZW1wb3Jh
cnlDaGFuZ2UuaC4KKyAgICAgICAgKFdURjo6U2V0Rm9yU2NvcGU6OlNldEZvclNjb3BlKToKKyAg
ICAgICAgKFdURjo6U2V0Rm9yU2NvcGU6On5TZXRGb3JTY29wZSk6CisKKzIwMTYtMTEtMTYgIFl1
c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0VTNl1bV2Vi
Q29yZV0gQ2hhbmdlIEVTNl9NT0RVTEVTIGNvbXBpbGUgdGltZSBmbGFnIHRvIHJ1bnRpbWUgZmxh
ZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODI3
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAyM2NiNzNiYzFmZjVkODZlODhiMzBiMjFjYTRhY2RlNjYxZTM4NTJh
Li4xZTkwMzQ5Y2VhMzdkZjg2ZTNlYWRkYzMxMDY1MzE2YzMzZmU3N2Q3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsOTIgQEAKIDIwMTYtMTEtMTYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CiAKKyAgICAgICAgW0pTQ10gV1RGOjpUZW1wb3JhcnlDaGFuZ2Ugd2l0aCBXVEY6
OlNldEZvclNjb3BlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjQ3NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6YWJvcnQpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5OjpkZWZpbmUpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAqIGNzcy9FbGVtZW50
UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rv
cjo6bWF0Y2hTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKToKKyAgICAgICAgKiBjc3MvU3R5bGVS
ZXNvbHZlci5jcHA6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZpbGxTaG9ydGhhbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpwYXJzZVNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXI6OnBhcnNlNFZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNl
Qm9yZGVyUmFkaXVzKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL1NWR0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUpOgorICAgICAgICAqIGRv
bS9DdXN0b21FbGVtZW50UmVnaXN0cnkuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzdHlsZUZvckVsZW1lbnRJZ25vcmluZ1BlbmRpbmdTdHlsZXNoZWV0cyk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGVzdHJveVJlbmRlclRyZWUpOgorICAgICAg
ICAqIGRvbS9FdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdldDo6
ZmlyZUV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBkb20vTWljcm90YXNrcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNaWNyb3Rhc2tRdWV1ZTo6cGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQp
OgorICAgICAgICAqIGhpc3RvcnkvUGFnZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VDYWNoZTo6cHJ1bmVUb1NpemVOb3cpOgorICAgICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6dXBkYXRlQXNzb2NpYXRlZEF0dHJp
YnV0ZUZyb21Ub2tlbnMpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByZWxvYWRTY2FubmVyOjpzY2FuKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oOgorICAgICAgICAqIGxvYWRl
ci9Db250ZW50RmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6Omhh
bmRsZVByb3Zpc2lvbmFsTG9hZEZhaWx1cmUpOgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpwcnVuZUxpdmVSZXNvdXJjZXNUb1NpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnBydW5lRGVhZFJlc291cmNlc1RvU2l6ZSk6
CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpy
dW5Nb2RhbCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRT
Y3JvbGxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmFwcGx5UmVjdXJz
aXZlbHlXaXRoVmlzaWJsZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjphdXRv
U2l6ZUlmRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2
ZUhlYWRlcnMpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZvcmVTdWJsYXll
cnMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5n
ZXNBZnRlclN1YmxheWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1Rl
bXBvcmFyeU9wZW5HTFNldHRpbmcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJH
TDo6ZHJhd1RleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpwdXJnZUJhY2tpbmdTdG9yZXMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0xheWVyRGlyZWN0MkQuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmRIZWxwZXI6OndyaXRlQ2xpcGJvYXJkQ29udGVudHMpOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGJhclRoZW1lTWFjOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyR2VvbWV0cnlNYXA6OnB1c2hNYXBwaW5nc1RvQW5jZXN0b3IpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6aGl0VGVzdCk6Cisg
ICAgICAgICogcmVwbGF5L0V2ZW50TG9vcElucHV0RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudExvb3BJbnB1dERpc3BhdGNoZXI6OmRpc3BhdGNoSW5wdXQpOgorICAgICAg
ICAqIHN0b3JhZ2UvU3RvcmFnZU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFw
OjpzZXRJdGVtSWdub3JpbmdRdW90YSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhCbGVuZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjphZGRBbmltYXRlZFBhdGgpOgor
CisyMDE2LTExLTE2ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAg
ICAgICAgIFtXZWJDb3JlXSBDbGVhbiB1cCBzY3JpcHQgbG9hZGluZyBjb2RlIGluIFhNTAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNjUxCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNmU5NzYzMDMzOWQ1NjAwMzA3NjNlOWNkMDlhZmM3YWU2OGZiZTlmNS4uNDNiY2Zm
YWU5MTQwOTUxYjU1NzVhMTc3NTBmYmM3ZjFmNTY1Njk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAxNi0xMS0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4K
KworICAgICAgICBbSlNDXSBXVEY6OlRlbXBvcmFyeUNoYW5nZSB3aXRoIFdURjo6U2V0Rm9yU2Nv
cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDc2
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKwogMjAxNi0xMS0xNCAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1v
dmUgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIgdG8gU2VjdXJp
dHlPcmlnaW5EYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZGRkNDRjZWZlODBjYjNhYmQxM2U2MmRl
NGU0ODY0ZGNkZDdlY2UwOC4uMTNlYTNiZDY2ZDQ5MzA5MzYyNmQzYWExZTU3ZGRmM2U2ODVjYzJi
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDE2LTExLTE2ICBZdXN1a2Ug
U3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCisgICAgICAgIFtKU0NdIFdURjo6VGVt
cG9yYXJ5Q2hhbmdlIHdpdGggV1RGOjpTZXRGb3JTY29wZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NzYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAg
ICgtW1dlYlZpZXcgdXBkYXRlVGV4dFRvdWNoQmFyXSk6CisKKzIwMTYtMTEtMTYgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0VTNl1bV2ViQ29yZV0g
Q2hhbmdlIEVTNl9NT0RVTEVTIGNvbXBpbGUgdGltZSBmbGFnIHRvIHJ1bnRpbWUgZmxhZwogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODI3CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCA3ZTA2ZmRlZWU3ZWEyM2M2MzkyNDg1MGIyYjAzMzk4MjBmNGMxYzhkLi40YjE3
MWE0OTRmMmYzNzk2ZTc3OTc2YTljYTc1ZjZiNDgwNThlNmRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDAgQEAKKzIwMTYtMTEtMTYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CisKKyAgICAgICAgW0pTQ10gV1RGOjpUZW1wb3JhcnlDaGFuZ2Ugd2l0aCBXVEY6OlNldEZv
clNjb3BlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQ3NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UGx1Z2luQ29udHJvbGxlclByb3h5Ojppbml0aWFsaXplKToKKyAgICAgICAgKiBQbHVnaW5Q
cm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tOgorICAgICAgICAoY3JlYXRlRW5j
b2RlZE9iamVjdCk6CisgICAgICAgIChkZWNvZGVPYmplY3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2tleWJvYXJk
Q2hhbmdlZFdpdGhJbmZvOmFkanVzdFNjcm9sbFZpZXc6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBk
YXRlVGV4dFRvdWNoQmFyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUGFzdGVib2FyZFByb3h5R3RrLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFzdGVib2FyZFByb3h5Ojp3cml0ZVRvQ2xpcGJvYXJk
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21w
b3NpdGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29y
ZGluYXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6Q29t
cG9zaXRpbmdDb29yZGluYXRvcjo6cHVyZ2VCYWNraW5nU3RvcmVzKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1v
dXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjprZXlFdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmRpc3BhdGNoVG91Y2hFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnNldEluaXRpYWxGb2N1cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omlu
c2VydFRleHRBc3luYyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBk
YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1t
OgorCiAyMDE2LTExLTE2ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyMDg1ODkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRl
eCA0MzdhMmVkZmI0NWVlMjM1YmM5NmYwOWFkNWUxOTQxNDQ1MjZkM2VlLi5lYWNlNGE2OTczNTJi
NDFiZGM0MjRlMWE2OWRiNzIxY2U1NDQxMWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC0zOSw3ICszOSw2
IEBACiAjaW5jbHVkZSAiTm9kZXMuaCIKICNpbmNsdWRlICJQYXJzZXJFcnJvci5oIgogI2luY2x1
ZGUgIlJlZ2lzdGVySUQuaCIKLSNpbmNsdWRlICJTZXRGb3JTY29wZS5oIgogI2luY2x1ZGUgIlN0
YXRpY1Byb3BlcnR5QW5hbHl6ZXIuaCIKICNpbmNsdWRlICJTeW1ib2xUYWJsZS5oIgogI2luY2x1
ZGUgIlRlbXBsYXRlUmVnaXN0cnlLZXkuaCIKQEAgLTQ4LDYgKzQ3LDcgQEAKICNpbmNsdWRlIDx3
dGYvSGFzaFRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1NlZ21lbnRlZFZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL1NldEZvclNjb3BlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL1NldEZvclNjb3BlLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGE4NTI1NjQ5N2M1MDRhNGU2MzMwNzBiY2JiY2U5YjY0MDI3MGI3OTQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9TZXRGb3JTY29wZS5oCisrKyAvZGV2L251bGwKQEAgLTEs
NTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotCi1uYW1lc3Bh
Y2UgSlNDIHsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWNsYXNzIFNldEZvclNjb3BlIHsKLXB1
YmxpYzoKLSAgICBTZXRGb3JTY29wZShUJiBjdXJyZW50VmFsdWUsIGNvbnN0IFQmIG5ld1ZhbHVl
KQotICAgICAgICA6IG1fcmVmKGN1cnJlbnRWYWx1ZSkKLSAgICAgICAgLCBtX29sZFZhbHVlKGN1
cnJlbnRWYWx1ZSkKLSAgICB7Ci0gICAgICAgIG1fcmVmID0gbmV3VmFsdWU7Ci0gICAgfQotCi0g
ICAgU2V0Rm9yU2NvcGUoVCYgY3VycmVudFZhbHVlLCBUJiYgbmV3VmFsdWUpCi0gICAgICAgIDog
bV9yZWYoY3VycmVudFZhbHVlKQotICAgICAgICAsIG1fb2xkVmFsdWUoY3VycmVudFZhbHVlKQot
ICAgIHsKLSAgICAgICAgY3VycmVudFZhbHVlID0gV1RGTW92ZShuZXdWYWx1ZSk7Ci0gICAgfQot
Ci0gICAgflNldEZvclNjb3BlKCkKLSAgICB7Ci0gICAgICAgIG1fcmVmID0gbV9vbGRWYWx1ZTsK
LSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgVCYgbV9yZWY7Ci0gICAgVCBtX29sZFZhbHVlOwotfTsK
LQotfTsgLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlci5jcHAKaW5kZXggOGIyMDIyM2RiN2M4NjliNjliYjU5M2UzMmE0YTAxYzczMTUxZmIz
Ny4uOThhY2QzMmRjZjQxMjQ2YjNmNGVjMmNmOGMzYWVhYjNhMjYxMjc4OCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCkBAIC05OCw3ICs5OCw3IEBAIGNs
YXNzIERlYnVnZ2VyUGF1c2VkU2NvcGUgewogICAgIERlYnVnZ2VyJiBtX2RlYnVnZ2VyOwogfTsK
IAotLy8gVGhpcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+LCBidXQg
dGhhdCBjYW5ub3QgYmUgdXNlZAorLy8gVGhpcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gU2V0Rm9yU2Nv
cGU8Ym9vbD4sIGJ1dCB0aGF0IGNhbm5vdCBiZSB1c2VkCiAvLyBhcyB0aGUgbV9pc1BhdXNlZCBm
aWVsZCB1c2VzIG9ubHkgb25lIGJpdC4KIGNsYXNzIFRlbXBvcmFyeVBhdXNlZFN0YXRlIHsKIHB1
YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAKaW5kZXggNjQzN2JiZGQwNDRiNDgyMmVk
ZTlmMDZiNjE3ZjhmOWVlMzI1OWQ4ZC4uZTI5NWY0MGJlOWNkMGI4NTNjMTBjNDU5Yjg4Y2FlNjNi
YTE5MjE3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAKQEAgLTI5LDcgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kUm91dGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yVmFsdWVzLmgiCi0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUg
PHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgQmFj
a2VuZERpc3BhdGNoZXI6OmRpc3BhdGNoKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICB7CiAg
ICAgICAgIC8vIEluIGNhc2UgdGhpcyBpcyBhIHJlLWVudHJhbnQgY2FsbCBmcm9tIGEgbmVzdGVk
IHJ1biBsb29wLCB3ZSBkb24ndCB3YW50IHRvIGxvc2UKICAgICAgICAgLy8gdGhlIG91dGVyIHJl
cXVlc3QncyBpZCBqdXN0IGJlY2F1c2UgdGhlIGlubmVyIHJlcXVlc3QgaXMgYm9ndXMuCi0gICAg
ICAgIFRlbXBvcmFyeUNoYW5nZTxPcHRpb25hbDxsb25nPj4gc2NvcGVkUmVxdWVzdElkKG1fY3Vy
cmVudFJlcXVlc3RJZCwgTnVsbG9wdCk7CisgICAgICAgIFNldEZvclNjb3BlPE9wdGlvbmFsPGxv
bmc+PiBzY29wZWRSZXF1ZXN0SWQobV9jdXJyZW50UmVxdWVzdElkLCBOdWxsb3B0KTsKIAogICAg
ICAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHBhcnNlZE1lc3NhZ2U7CiAgICAgICAgIGlmICgh
SW5zcGVjdG9yVmFsdWU6OnBhcnNlSlNPTihtZXNzYWdlLCBwYXJzZWRNZXNzYWdlKSkgewpAQCAt
MTQ1LDcgKzE0NSw3IEBAIHZvaWQgQmFja2VuZERpc3BhdGNoZXI6OmRpc3BhdGNoKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKIAogICAgIHsKICAgICAgICAgLy8gV2UgY291bGQgYmUgY2FsbGVkIHJl
LWVudHJhbnRseSBmcm9tIGEgbmVzdGVkIHJ1biBsb29wLCBzbyByZXN0b3JlIHRoZSBwcmV2aW91
cyBpZC4KLSAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPE9wdGlvbmFsPGxvbmc+PiBzY29wZWRSZXF1
ZXN0SWQobV9jdXJyZW50UmVxdWVzdElkLCByZXF1ZXN0SWQpOworICAgICAgICBTZXRGb3JTY29w
ZTxPcHRpb25hbDxsb25nPj4gc2NvcGVkUmVxdWVzdElkKG1fY3VycmVudFJlcXVlc3RJZCwgcmVx
dWVzdElkKTsKIAogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IG1ldGhvZFZhbHVlOwog
ICAgICAgICBpZiAoIW1lc3NhZ2VPYmplY3QtPmdldFZhbHVlKEFTQ0lJTGl0ZXJhbCgibWV0aG9k
IiksIG1ldGhvZFZhbHVlKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCA5YzVhYTc3NWE2N2NlOWY4ZGZhYzYw
ZmI0NDkyMzk0ZjRjM2FhY2Y2Li43NTVmNWI4NTM1YzJlMmE0MDRkOGVhZDYwNWM3MDIxZjNmNjhk
YWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERl
YnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1Njcmlw
dERlYnVnU2VydmVyLmNwcApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgIlNjcmlwdFZhbHVl
LmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3Rm
L1NldEZvclNjb3BlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKQEAgLTE0Myw3ICsxNDMs
NyBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRjaEJyZWFrcG9pbnRBY3Rpb25Mb2co
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbgogICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2Uo
bV9jYWxsaW5nTGlzdGVuZXJzLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2Uo
bV9jYWxsaW5nTGlzdGVuZXJzLCB0cnVlKTsKIAogICAgIFZlY3RvcjxTY3JpcHREZWJ1Z0xpc3Rl
bmVyKj4gbGlzdGVuZXJzQ29weTsKICAgICBjb3B5VG9WZWN0b3IobV9saXN0ZW5lcnMsIGxpc3Rl
bmVyc0NvcHkpOwpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmRp
c3BhdGNoQnJlYWtwb2ludEFjdGlvblNvdW5kKEV4ZWNTdGF0ZSosIGludCBicmVha3BvaW50CiAg
ICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVGVt
cG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZShtX2NhbGxpbmdMaXN0ZW5lcnMsIHRydWUpOworICAg
IFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2NhbGxpbmdMaXN0ZW5lcnMsIHRydWUpOwogCiAg
ICAgVmVjdG9yPFNjcmlwdERlYnVnTGlzdGVuZXIqPiBsaXN0ZW5lcnNDb3B5OwogICAgIGNvcHlU
b1ZlY3RvcihtX2xpc3RlbmVycywgbGlzdGVuZXJzQ29weSk7CkBAIC0xNzUsNyArMTc1LDcgQEAg
dm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlzcGF0Y2hCcmVha3BvaW50QWN0aW9uUHJvYmUoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBTY3IKICAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hhbmdlKG1fY2Fs
bGluZ0xpc3RlbmVycywgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1fY2Fs
bGluZ0xpc3RlbmVycywgdHJ1ZSk7CiAKICAgICB1bnNpZ25lZCBzYW1wbGVJZCA9IG1fbmV4dFBy
b2JlU2FtcGxlSWQrKzsKIApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2
ZXI6OnNvdXJjZVBhcnNlZChFeGVjU3RhdGUqIGV4ZWMsIFNvdXJjZVByb3ZpZGVyKiBzb3VyY2VQ
cm92CiAgICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZShtX2NhbGxpbmdMaXN0ZW5lcnMsIHRydWUp
OworICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2NhbGxpbmdMaXN0ZW5lcnMsIHRydWUp
OwogCiAgICAgYm9vbCBpc0Vycm9yID0gZXJyb3JMaW5lICE9IC0xOwogICAgIGlmIChpc0Vycm9y
KQpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmRpc3BhdGNoRnVu
Y3Rpb25Ub0xpc3RlbmVycyhKYXZhU2NyaXB0RXhlY3V0aW9uQ2FsbGJhY2sKICAgICBpZiAobV9s
aXN0ZW5lcnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBUZW1wb3JhcnlDaGFu
Z2U8Ym9vbD4gY2hhbmdlKG1fY2FsbGluZ0xpc3RlbmVycywgdHJ1ZSk7CisgICAgU2V0Rm9yU2Nv
cGU8Ym9vbD4gY2hhbmdlKG1fY2FsbGluZ0xpc3RlbmVycywgdHJ1ZSk7CiAKICAgICBkaXNwYXRj
aEZ1bmN0aW9uVG9MaXN0ZW5lcnMobV9saXN0ZW5lcnMsIGNhbGxiYWNrKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCBjZTZiZmE3YTFmODMxMjQzMjY4OWNh
N2M1ZjAzNzZhODdiYTEwN2JiLi5hYmRhYjNhOTY1NmIwMzdhNTgwZjkxYWIwM2RjMGI3OTcwMGE5
NTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0yNiw5ICsy
Niw5IEBACiAjaW5jbHVkZSAiQVNUQnVpbGRlci5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyUGFyc2VE
YXRhLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgotI2luY2x1ZGUgIlNldEZvclNjb3BlLmgi
CiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx1dGlsaXR5PgorI2luY2x1ZGUgPHd0Zi9TZXRG
b3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiAjZGVmaW5l
IHVwZGF0ZUVycm9yTWVzc2FnZShzaG91bGRQcmludFRva2VuLCAuLi4pIGRvIHtcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3YTVmZWJiODE5ODY4OTY1Y2Rl
NmU1YjZiNDIwMTRhMWU5ZDZmOGQ0Li5kMzZhMmRkMDQyOWUzZTYzMzdjMDNhYzhjYTgyZjQ4ZDU2
YzJkMDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4
NCw3ICsyODQsNyBAQAogCQlBOEE0NzQyQTE1MUE4MjVCMDA0MTIzRkYgLyogU3RkTGliRXh0cmFz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzMx
MTE1MUE4MjVCMDA0MTIzRkYgLyogU3RkTGliRXh0cmFzLmggKi87IH07CiAJCUE4QTQ3NDJDMTUx
QTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MzEzMTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdF
eHRyYXMuaCAqLzsgfTsKIAkJQThBNDc0MkQxNTFBODI1QjAwNDEyM0ZGIC8qIEhhc2hlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczMTQxNTFB
ODI1QjAwNDEyM0ZGIC8qIEhhc2hlci5oICovOyB9OwotCQlBOEE0NzQzMzE1MUE4MjVCMDA0MTIz
RkYgLyogVGVtcG9yYXJ5Q2hhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEE0NzMxQTE1MUE4MjVCMDA0MTIzRkYgLyogVGVtcG9yYXJ5Q2hhbmdl
LmggKi87IH07CisJCUE4QTQ3NDMzMTUxQTgyNUIwMDQxMjNGRiAvKiBTZXRGb3JTY29wZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczMUExNTFB
ODI1QjAwNDEyM0ZGIC8qIFNldEZvclNjb3BlLmggKi87IH07CiAJCUE4QTQ3NDM0MTUxQTgyNUIw
MDQxMjNGRiAvKiBBU0NJSUZhc3RQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzMxQzE1MUE4MjVCMDA0MTIzRkYgLyogQVNDSUlGYXN0UGF0
aC5oICovOyB9OwogCQlBOEE0NzQzNTE1MUE4MjVCMDA0MTIzRkYgLyogQXRvbWljU3RyaW5nLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MzFE
MTUxQTgyNUIwMDQxMjNGRiAvKiBBdG9taWNTdHJpbmcuY3BwICovOyB9OwogCQlBOEE0NzQzNjE1
MUE4MjVCMDA0MTIzRkYgLyogQXRvbWljU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzMxRTE1MUE4MjVCMDA0MTIzRkYgLyogQXRvbWlj
U3RyaW5nLmggKi87IH07CkBAIC02NTMsNyArNjUzLDcgQEAKIAkJQThBNDczMTExNTFBODI1QjAw
NDEyM0ZGIC8qIFN0ZExpYkV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTdGRMaWJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDczMTMx
NTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0V4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdHJpbmdFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QThBNDczMTQxNTFBODI1QjAwNDEyM0ZGIC8qIEhhc2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIYXNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThB
NDczMUExNTFBODI1QjAwNDEyM0ZGIC8qIFRlbXBvcmFyeUNoYW5nZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUZW1wb3JhcnlDaGFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQThBNDczMUExNTFBODI1QjAwNDEyM0ZGIC8qIFNldEZvclNjb3BlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldEZvclNjb3BlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MzFDMTUxQTgyNUIwMDQxMjNGRiAvKiBBU0NJSUZhc3RQ
YXRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFTQ0lJRmFzdFBhdGguaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDczMUQxNTFBODI1QjAwNDEyM0ZGIC8q
IEF0b21pY1N0cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
dG9taWNTdHJpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzMxRTE1
MUE4MjVCMDA0MTIzRkYgLyogQXRvbWljU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEF0b21pY1N0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTA2NSw3ICsxMDY1LDcgQEAKIAkJCQkwRkREQkZBNjE2NjZERkEzMDBDNTVGRUYgLyogU3RyaW5n
UHJpbnRTdHJlYW0uaCAqLywKIAkJCQk1NTk3RjgyQzFEOTRCOTk3MDA2NkJDMjEgLyogU3luY2hy
b25pemVkRml4ZWRRdWV1ZS5oICovLAogCQkJCTBGQjMxN0MzMUM0ODgwMDEwMDdFMzk1QSAvKiBT
eXN0ZW1UcmFjaW5nLmggKi8sCi0JCQkJQThBNDczMUExNTFBODI1QjAwNDEyM0ZGIC8qIFRlbXBv
cmFyeUNoYW5nZS5oICovLAorCQkJCUE4QTQ3MzFBMTUxQTgyNUIwMDQxMjNGRiAvKiBTZXRGb3JT
Y29wZS5oICovLAogCQkJCUE4QTQ3MzJGMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRGdW5jdGlv
bkludm9jYXRpb24uaCAqLywKIAkJCQlBOEE0NzMzMDE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFk
SWRlbnRpZmllckRhdGFQdGhyZWFkcy5jcHAgKi8sCiAJCQkJQThBNDczMzExNTFBODI1QjAwNDEy
M0ZGIC8qIFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuaCAqLywKQEAgLTE0NzQsNyArMTQ3
NCw3IEBACiAJCQkJNzBFQ0E2MEUxQjAyNDI2ODAwNDQ5NzM5IC8qIFN5bWJvbEltcGwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTcwQTk5M0ZGMUFENzE1MTMwMEZBNjE1QiAvKiBTeW1ib2xSZWdpc3Ry
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCMzE3QzQxQzQ4ODAwMTAwN0UzOTVBIC8qIFN5c3Rl
bVRyYWNpbmcuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QTQ3NDMzMTUxQTgyNUIwMDQxMjNGRiAv
KiBUZW1wb3JhcnlDaGFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4QTQ3NDMzMTUxQTgyNUIw
MDQxMjNGRiAvKiBTZXRGb3JTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMxODFDODAxRDMw
NzhEQTAwRjVGQTE2IC8qIFRleHRCcmVha0l0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OEE0NzQ0NDE1MUE4MjVCMDA0MTIzRkYgLyogVGV4dFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEE0NzQ0NzE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9u
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NldEZvclNjb3Bl
LmggYi9Tb3VyY2UvV1RGL3d0Zi9TZXRGb3JTY29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwOGIyY2E2ZWE1
OGZmNmI4YjM0ZTU3OWIwMDhjYTIzZjcxOTI4NDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9TZXRGb3JTY29wZS5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8v
IFNldEZvclNjb3BlPD4gaXMgdXNlZnVsIGZvciBzZXR0aW5nIGEgdmFyaWFibGUgdG8gYSBuZXcg
dmFsdWUgb25seSB3aXRoaW4gYQorLy8gcGFydGljdWxhciBzY29wZS4gQW4gU2V0Rm9yU2NvcGU8
PiBvYmplY3QgY2hhbmdlcyBhIHZhcmlhYmxlIHRvIGl0cyBvcmlnaW5hbAorLy8gdmFsdWUgdXBv
biBkZXN0cnVjdGlvbiwgbWFraW5nIGl0IGFuIGFsdGVybmF0aXZlIHRvIHdyaXRpbmcgInZhciA9
IGZhbHNlOyIKKy8vIG9yICJ2YXIgPSBvbGRWYWw7IiBhdCBhbGwgb2YgYSBibG9jaydzIGV4aXQg
cG9pbnRzLgorLy8KKy8vIFRoaXMgc2hvdWxkIGJlIG9idmlvdXMsIGJ1dCBub3RlIHRoYXQgYW4g
U2V0Rm9yU2NvcGU8PiBpbnN0YW5jZSBzaG91bGQgaGF2ZSBhCisvLyBzaG9ydGVyIGxpZmV0aW1l
IHRoYW4gaXRzIHNjb3BlZFZhcmlhYmxlLCB0byBwcmV2ZW50IGludmFsaWQgbWVtb3J5IHdyaXRl
cworLy8gd2hlbiB0aGUgU2V0Rm9yU2NvcGU8PiBvYmplY3QgaXMgZGVzdHJveWVkLgorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgU2V0Rm9yU2NvcGUgeworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFNldEZvclNjb3BlKTsKK3B1YmxpYzoKKyAgICBTZXRGb3JTY29wZShUJiBzY29wZWRW
YXJpYWJsZSkKKyAgICAgICAgOiBtX3Njb3BlZFZhcmlhYmxlKHNjb3BlZFZhcmlhYmxlKQorICAg
ICAgICAsIG1fb3JpZ2luYWxWYWx1ZShzY29wZWRWYXJpYWJsZSkKKyAgICB7CisgICAgfQorICAg
IFNldEZvclNjb3BlKFQmIHNjb3BlZFZhcmlhYmxlLCBUIG5ld1ZhbHVlKQorICAgICAgICA6IFNl
dEZvclNjb3BlKHNjb3BlZFZhcmlhYmxlKQorICAgIHsKKyAgICAgICAgbV9zY29wZWRWYXJpYWJs
ZSA9IG5ld1ZhbHVlOworICAgIH0KKworICAgIH5TZXRGb3JTY29wZSgpCisgICAgeworICAgICAg
ICBtX3Njb3BlZFZhcmlhYmxlID0gbV9vcmlnaW5hbFZhbHVlOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBUJiBtX3Njb3BlZFZhcmlhYmxlOworICAgIFQgbV9vcmlnaW5hbFZhbHVlOworfTsKKwor
fQorCit1c2luZyBXVEY6OlNldEZvclNjb3BlOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1RlbXBvcmFyeUNoYW5nZS5oIGIvU291cmNlL1dURi93dGYvVGVtcG9yYXJ5Q2hh
bmdlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxN2QwYjRmMGVkNjNlMDBiYzli
MTNjZjNjNDIwNjk4MjJkMmYwYTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvVGVtcG9yYXJ5Q2hhbmdlLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0g
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBUZW1wb3JhcnlDaGFuZ2VfaAotI2Rl
ZmluZSBUZW1wb3JhcnlDaGFuZ2VfaAotCi0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0K
LW5hbWVzcGFjZSBXVEYgewotCi0vLyBUZW1wb3JhcnlDaGFuZ2U8PiBpcyB1c2VmdWwgZm9yIHNl
dHRpbmcgYSB2YXJpYWJsZSB0byBhIG5ldyB2YWx1ZSBvbmx5IHdpdGhpbiBhCi0vLyBwYXJ0aWN1
bGFyIHNjb3BlLiBBbiBUZW1wb3JhcnlDaGFuZ2U8PiBvYmplY3QgY2hhbmdlcyBhIHZhcmlhYmxl
IHRvIGl0cyBvcmlnaW5hbAotLy8gdmFsdWUgdXBvbiBkZXN0cnVjdGlvbiwgbWFraW5nIGl0IGFu
IGFsdGVybmF0aXZlIHRvIHdyaXRpbmcgInZhciA9IGZhbHNlOyIKLS8vIG9yICJ2YXIgPSBvbGRW
YWw7IiBhdCBhbGwgb2YgYSBibG9jaydzIGV4aXQgcG9pbnRzLgotLy8KLS8vIFRoaXMgc2hvdWxk
IGJlIG9idmlvdXMsIGJ1dCBub3RlIHRoYXQgYW4gVGVtcG9yYXJ5Q2hhbmdlPD4gaW5zdGFuY2Ug
c2hvdWxkIGhhdmUgYQotLy8gc2hvcnRlciBsaWZldGltZSB0aGFuIGl0cyBzY29wZWRWYXJpYWJs
ZSwgdG8gcHJldmVudCBpbnZhbGlkIG1lbW9yeSB3cml0ZXMKLS8vIHdoZW4gdGhlIFRlbXBvcmFy
eUNoYW5nZTw+IG9iamVjdCBpcyBkZXN0cm95ZWQuCi0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1j
bGFzcyBUZW1wb3JhcnlDaGFuZ2UgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRlbXBvcmFy
eUNoYW5nZSk7Ci1wdWJsaWM6Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlKFQmIHNjb3BlZFZhcmlhYmxl
KQotICAgICAgICA6IG1fc2NvcGVkVmFyaWFibGUoc2NvcGVkVmFyaWFibGUpCi0gICAgICAgICwg
bV9vcmlnaW5hbFZhbHVlKHNjb3BlZFZhcmlhYmxlKQotICAgIHsKLSAgICB9Ci0gICAgVGVtcG9y
YXJ5Q2hhbmdlKFQmIHNjb3BlZFZhcmlhYmxlLCBUIG5ld1ZhbHVlKQotICAgICAgICA6IFRlbXBv
cmFyeUNoYW5nZShzY29wZWRWYXJpYWJsZSkKLSAgICB7Ci0gICAgICAgIG1fc2NvcGVkVmFyaWFi
bGUgPSBuZXdWYWx1ZTsKLSAgICB9Ci0KLSAgICB+VGVtcG9yYXJ5Q2hhbmdlKCkKLSAgICB7Ci0g
ICAgICAgIG1fc2NvcGVkVmFyaWFibGUgPSBtX29yaWdpbmFsVmFsdWU7Ci0gICAgfQotCi1wcml2
YXRlOgotICAgIFQmIG1fc2NvcGVkVmFyaWFibGU7Ci0gICAgVCBtX29yaWdpbmFsVmFsdWU7Ci19
OwotCi19Ci0KLXVzaW5nIFdURjo6VGVtcG9yYXJ5Q2hhbmdlOwotCi0jZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5n
U3RvcmVUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCmluZGV4IDBmZGVkMGU1YWIy
NjZlMmZlYWRkY2E2ZWQzNzhiMGE5MzI3MDY2MzcuLjBlN2JiNmJkYWQ0NDc1OThjNmEyNWVkNTM2
YTU1NWVmMGNkNzE2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uLmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJNZW1vcnlJREJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJNZW1vcnlPYmplY3RTdG9y
ZS5oIgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0
Rm9yU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIElEQlNlcnZlciB7
CkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6
YWJvcnQoKQogewogICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbjo6YWJvcnQoKSIpOwogCi0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZShtX2lz
QWJvcnRpbmcsIHRydWUpOworICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2lzQWJvcnRp
bmcsIHRydWUpOwogCiAgICAgZm9yIChhdXRvIGl0ZXJhdG9yIDogbV9vcmlnaW5hbEluZGV4TmFt
ZXMpCiAgICAgICAgIGl0ZXJhdG9yLmtleS0+cmVuYW1lKGl0ZXJhdG9yLnZhbHVlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJl
Z2lzdHJ5Q3VzdG9tLmNwcAppbmRleCBiOGEzYjg2MWNhMWRjZDQ1M2NmZDExOTRmNjMzZTBhMGI5
NGM0ZDdhLi45YjljOWFmNzlmMzljMzRmZWZhMzBlZWYyNWZhNjc1YzY3NzJjYTY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRSZWdpc3RyeUN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50
UmVnaXN0cnlDdXN0b20uY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgSlNWYWx1ZSBKU0N1c3RvbUVs
ZW1lbnRSZWdpc3RyeTo6ZGVmaW5lKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgICAgIHRocm93Tm90
U3VwcG9ydGVkRXJyb3Ioc3RhdGUsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBkZWZpbmUg
YSBjdXN0b20gZWxlbWVudCB3aGlsZSBkZWZpbmluZyBhbm90aGVyIGN1c3RvbSBlbGVtZW50Iikp
OwogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgVGVtcG9yYXJ5Q2hh
bmdlPGJvb2w+IGNoYW5nZShyZWdpc3RyeS5lbGVtZW50RGVmaW5pdGlvbklzUnVubmluZygpLCB0
cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UocmVnaXN0cnkuZWxlbWVudERlZmlu
aXRpb25Jc1J1bm5pbmcoKSwgdHJ1ZSk7CiAKICAgICBpZiAocmVnaXN0cnkuZmluZEludGVyZmFj
ZShsb2NhbE5hbWUpKSB7CiAgICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUsIHNj
b3BlLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBkZWZpbmUgbXVsdGlwbGUgY3VzdG9tIGVsZW1lbnRz
IHdpdGggdGhlIHNhbWUgdGFnIG5hbWUiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDQ1MTAyZWZmYzEwZWRmOGIwNmZhMThhOGQ3
YTJmYTBlNTA5YWNjYWYuLjIwODdhODZmNzNmNmIyNmI0Nzc4NTM0ZGE2ZGQxYmFmN2E0YTkwNzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
CkBAIC01OSw3ICs1OSw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRl
IDxydW50aW1lL0pTTW9kdWxlUmVjb3JkLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU05hdGl2ZVN0
ZEZ1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUg
PHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KIApAQCAtMjUyLDcgKzI1Miw3IEBAIEpTQzo6SlNW
YWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNvdXJjZVVS
TCwgSlNNb2R1bGVSZWNvCiAKICAgICBhdXRvJiBzaGVsbCA9ICp3aW5kb3dTaGVsbCh3b3JsZCk7
CiAgICAgYXV0byYgc3RhdGUgPSAqc2hlbGwud2luZG93KCktPmdsb2JhbEV4ZWMoKTsKLSAgICBU
ZW1wb3JhcnlDaGFuZ2U8Y29uc3QgU3RyaW5nKj4gc291cmNlVVJMU2NvcGUobV9zb3VyY2VVUkws
ICZzb3VyY2VVUkwuc3RyaW5nKCkpOworICAgIFNldEZvclNjb3BlPGNvbnN0IFN0cmluZyo+IHNv
dXJjZVVSTFNjb3BlKG1fc291cmNlVVJMLCAmc291cmNlVVJMLnN0cmluZygpKTsKIAogICAgIFJl
ZjxGcmFtZT4gcHJvdGVjdG9yKG1fZnJhbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1l
bnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCBlMmJmNzc4NDgyZDU3NjdmMmE5MDJmOTI1MDU1NzQ1
YWMyYTFjZGJhLi5jZmI5ZDkxMWJiMmU0MGUzNTdlZmQzODY3MjViMzhmNDk4NTMzOWMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTQ2LDcgKzQ2
LDcgQEAKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKICNpbmNsdWRlICJTdHlsZVNjb3Bl
LmgiCiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlD
aGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC0yODAsNyArMjgwLDcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0
Y2hTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKE1hdGNoUmVxdWVzdCYgbWF0Y2hSZXEKICAgICAg
ICAgaWYgKCFzbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKQogICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIC8vIE1hdGNoIGluIHRoZSBjdXJyZW50IHNjb3BlLgotICAgICAgICBUZW1wb3Jh
cnlDaGFuZ2U8Ym9vbD4gY2hhbmdlKG1faXNNYXRjaGluZ1Nsb3R0ZWRQc2V1ZG9FbGVtZW50cywg
dHJ1ZSk7CisgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2lzTWF0Y2hpbmdTbG90
dGVkUHNldWRvRWxlbWVudHMsIHRydWUpOwogCiAgICAgICAgIE1hdGNoUmVxdWVzdCBzY29wZU1h
dGNoUmVxdWVzdChudWxscHRyLCBtYXRjaFJlcXVlc3QuaW5jbHVkZUVtcHR5UnVsZXMsIG1hdGNo
UmVxdWVzdC50cmVlQ29udGV4dE9yZGluYWwpOwogICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxl
c0Zvckxpc3Qoc2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcy5nZXQoKSwgc2NvcGVNYXRjaFJlcXVl
c3QsIHJ1bGVSYW5nZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMGRj
NTk3NmExMzgxMWUyNzk2ZDlmN2U1MjU1M2U5ODA1NjVhMTMzYS4uMTlhNzAzNzVlYWU0YTJhNjY5
MjU5MmUwNzdjNmE2N2JkOTQ3NmVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cApAQCAtMTM4LDggKzEzOCw4IEBACiAjaW5jbHVkZSAiV2ViS2l0Rm9udEZhbWlseU5hbWVzLmgi
CiAjaW5jbHVkZSAiWE1MTmFtZXMuaCIKICNpbmNsdWRlIDxiaXRzZXQ+CisjaW5jbHVkZSA8d3Rm
L1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotI2luY2x1ZGUg
PHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nSGFzaC5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlci5jcHAKaW5kZXggMmEwMGMzMjcwMmNkOGE2NTQxYmU5Zjg0YWY2YzcxNTNhNDU5
MDJhNi4uYjFmYjExMmQzZDIxMDRkNmU0M2VjNjk4ZTNkYTMzMjIwYTk1MGJiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcApAQCAtMTEyLDggKzExMiw4IEBACiAjaW5j
bHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8d3RmL0hleE51bWJlci5oPgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+
CiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWZmZXIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC0zNDE2LDcgKzM0MTYs
NyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VGaWxsU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQgcHJv
cElkLCBjb25zdCBDU1NQcm9wZXJ0eUlEKiBwcgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBTaG9ydGhhbmRTY29wZSBzY29wZSh0aGlzLCBwcm9wSWQpOwotICAgIFRlbXBvcmFyeUNoYW5n
ZTxib29sPiBjaGFuZ2UobV9pbXBsaWNpdFNob3J0aGFuZCk7CisgICAgU2V0Rm9yU2NvcGU8Ym9v
bD4gY2hhbmdlKG1faW1wbGljaXRTaG9ydGhhbmQpOwogCiAgICAgYm9vbCBwYXJzZWRQcm9wZXJ0
eVtjTWF4RmlsbFByb3BlcnRpZXNdID0geyBmYWxzZSB9OwogICAgIFJlZlB0cjxDU1NWYWx1ZT4g
dmFsdWVzW2NNYXhGaWxsUHJvcGVydGllc107CkBAIC0zODEyLDcgKzM4MTIsNyBAQCBib29sIENT
U1BhcnNlcjo6cGFyc2VTaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGNvbnN0IFN0eWxl
UHJvcGVydHlTaG9ydGhhbgogCiAgICAgLy8gRmlsbCBpbiBhbnkgcmVtYWluaW5nIHByb3BlcnRp
ZXMgd2l0aCB0aGUgaW5pdGlhbCB2YWx1ZS4KICAgICBhdXRvJiBjc3NWYWx1ZVBvb2wgPSBDU1NW
YWx1ZVBvb2w6OnNpbmdsZXRvbigpOwotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2Uo
bV9pbXBsaWNpdFNob3J0aGFuZCwgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdl
KG1faW1wbGljaXRTaG9ydGhhbmQsIHRydWUpOwogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTaG9y
dGhhbmQqIHByb3BlcnRpZXNGb3JJbml0aWFsaXphdGlvbiA9IHNob3J0aGFuZC5wcm9wZXJ0aWVz
Rm9ySW5pdGlhbGl6YXRpb24oKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2hvcnRo
YW5kLmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAgaWYgKHByb3BlcnR5Rm91bmRbaV0pCkBAIC0z
ODQ5LDcgKzM4NDksNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2U0VmFsdWVzKENTU1Byb3BlcnR5
SUQgcHJvcElkLCBjb25zdCBDU1NQcm9wZXJ0eUlEICpwcm9wZXJ0aQogICAgICAgICAgICAgaWYg
KCFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMF0sIGltcG9ydGFudCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgQ1NTVmFsdWUqIHZhbHVlID0gbV9wYXJzZWRQcm9w
ZXJ0aWVzLmxhc3QoKS52YWx1ZSgpOwotICAgICAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+
IGNoYW5nZShtX2ltcGxpY2l0U2hvcnRoYW5kLCB0cnVlKTsKKyAgICAgICAgICAgIFNldEZvclNj
b3BlPGJvb2w+IGNoYW5nZShtX2ltcGxpY2l0U2hvcnRoYW5kLCB0cnVlKTsKICAgICAgICAgICAg
IGFkZFByb3BlcnR5KHByb3BlcnRpZXNbMV0sIHZhbHVlLCBpbXBvcnRhbnQpOwogICAgICAgICAg
ICAgYWRkUHJvcGVydHkocHJvcGVydGllc1syXSwgdmFsdWUsIGltcG9ydGFudCk7CiAgICAgICAg
ICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzNdLCB2YWx1ZSwgaW1wb3J0YW50KTsKQEAgLTM4
NTksNyArMzg1OSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZTRWYWx1ZXMoQ1NTUHJvcGVydHlJ
RCBwcm9wSWQsIGNvbnN0IENTU1Byb3BlcnR5SUQgKnByb3BlcnRpCiAgICAgICAgICAgICBpZiAo
IXBhcnNlVmFsdWUocHJvcGVydGllc1swXSwgaW1wb3J0YW50KSB8fCAhcGFyc2VWYWx1ZShwcm9w
ZXJ0aWVzWzFdLCBpbXBvcnRhbnQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgICAgIENTU1ZhbHVlKiB2YWx1ZSA9IG1fcGFyc2VkUHJvcGVydGllc1ttX3BhcnNlZFBy
b3BlcnRpZXMuc2l6ZSgpIC0gMl0udmFsdWUoKTsKLSAgICAgICAgICAgIFRlbXBvcmFyeUNoYW5n
ZTxib29sPiBjaGFuZ2UobV9pbXBsaWNpdFNob3J0aGFuZCwgdHJ1ZSk7CisgICAgICAgICAgICBT
ZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9pbXBsaWNpdFNob3J0aGFuZCwgdHJ1ZSk7CiAgICAg
ICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzJdLCB2YWx1ZSwgaW1wb3J0YW50KTsKICAg
ICAgICAgICAgIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzW21fcGFyc2VkUHJvcGVydGllcy5z
aXplKCkgLSAyXS52YWx1ZSgpOwogICAgICAgICAgICAgYWRkUHJvcGVydHkocHJvcGVydGllc1sz
XSwgdmFsdWUsIGltcG9ydGFudCk7CkBAIC0zODY5LDcgKzM4NjksNyBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2U0VmFsdWVzKENTU1Byb3BlcnR5SUQgcHJvcElkLCBjb25zdCBDU1NQcm9wZXJ0eUlE
ICpwcm9wZXJ0aQogICAgICAgICAgICAgaWYgKCFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMF0sIGlt
cG9ydGFudCkgfHwgIXBhcnNlVmFsdWUocHJvcGVydGllc1sxXSwgaW1wb3J0YW50KSB8fCAhcGFy
c2VWYWx1ZShwcm9wZXJ0aWVzWzJdLCBpbXBvcnRhbnQpKQogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgIENTU1ZhbHVlKiB2YWx1ZSA9IG1fcGFyc2VkUHJvcGVydGll
c1ttX3BhcnNlZFByb3BlcnRpZXMuc2l6ZSgpIC0gMl0udmFsdWUoKTsKLSAgICAgICAgICAgIFRl
bXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2UobV9pbXBsaWNpdFNob3J0aGFuZCwgdHJ1ZSk7Cisg
ICAgICAgICAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9pbXBsaWNpdFNob3J0aGFuZCwg
dHJ1ZSk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzNdLCB2YWx1ZSwgaW1w
b3J0YW50KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC04NjI0LDcgKzg2MjQs
NyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VCb3JkZXJSYWRpdXMoQ1NTUHJvcGVydHlJRCBwcm9w
SWQsIGJvb2wgaW1wb3J0YW50KQogICAgIH0gZWxzZQogICAgICAgICBjb21wbGV0ZUJvcmRlclJh
ZGlpKHJhZGlpWzFdKTsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2UobV9pbXBs
aWNpdFNob3J0aGFuZCwgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1faW1w
bGljaXRTaG9ydGhhbmQsIHRydWUpOwogICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVy
VG9wTGVmdFJhZGl1cywgY3JlYXRlUHJpbWl0aXZlVmFsdWVQYWlyKFdURk1vdmUocmFkaWlbMF1b
MF0pLCBXVEZNb3ZlKHJhZGlpWzFdWzBdKSksIGltcG9ydGFudCk7CiAgICAgYWRkUHJvcGVydHko
Q1NTUHJvcGVydHlCb3JkZXJUb3BSaWdodFJhZGl1cywgY3JlYXRlUHJpbWl0aXZlVmFsdWVQYWly
KFdURk1vdmUocmFkaWlbMF1bMV0pLCBXVEZNb3ZlKHJhZGlpWzFdWzFdKSksIGltcG9ydGFudCk7
CiAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21SaWdodFJhZGl1cywgY3Jl
YXRlUHJpbWl0aXZlVmFsdWVQYWlyKFdURk1vdmUocmFkaWlbMF1bMl0pLCBXVEZNb3ZlKHJhZGlp
WzFdWzJdKSksIGltcG9ydGFudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL1NWR0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NWR0NTU1Bh
cnNlci5jcHAKaW5kZXggZTM0NWY5Y2MxNWM4NWI2ZjNjMTM4OTY4YzYzMjI4NDdjODZkZGFmMy4u
MjNjMmExNWQyZWI0NTIxMGIxMGVjMDczODFjNDRiYjMwNzk0YzYyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TVkdDU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvU1ZHQ1NTUGFyc2VyLmNwcApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1
ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU1ZHUGFpbnQuaCIKIAotI2luY2x1ZGUgPHd0
Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yMTMsNyArMjEzLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlU1ZHVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNh
c2UgQ1NTUHJvcGVydHlNYXJrZXI6CiAgICAgewogICAgICAgICBTaG9ydGhhbmRTY29wZSBzY29w
ZSh0aGlzLCBwcm9wSWQpOwotICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hhbmdlKG1f
aW1wbGljaXRTaG9ydGhhbmQsIHRydWUpOworICAgICAgICBTZXRGb3JTY29wZTxib29sPiBjaGFu
Z2UobV9pbXBsaWNpdFNob3J0aGFuZCwgdHJ1ZSk7CiAgICAgICAgIGlmICghcGFyc2VWYWx1ZShD
U1NQcm9wZXJ0eU1hcmtlclN0YXJ0LCBpbXBvcnRhbnQpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICBpZiAobV92YWx1ZUxpc3QtPmN1cnJlbnQoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oCmluZGV4IDg4MzNlM2FiMGZjYzY0MDljN2Rh
ZTQzOGQ2ODc0YjRkOTZiZWQzOTAuLjExMjA5N2IxYzI4M2Y4YzA4NDQ3ZjFkMGFjMzE1ZmZjNmUz
YTFiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVnaXN0
cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgKQEAg
LTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJRdWFs
aWZpZWROYW1lLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvVGVt
cG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
SGFzaC5oPgogCkBAIC03Niw3ICs3Niw3IEBAIGNsYXNzIEN1c3RvbUVsZW1lbnRSZWdpc3RyeSA6
IHB1YmxpYyBSZWZDb3VudGVkPEN1c3RvbUVsZW1lbnRSZWdpc3RyeT4gewogCiAgICAgYm9vbCBt
X2VsZW1lbnREZWZpbml0aW9uSXNSdW5uaW5nIHsgZmFsc2UgfTsKIAotICAgIGZyaWVuZCBjbGFz
cyBFbGVtZW50RGVmaW5pdGlvbklzUnVubmluZ1RlbXBvcmFyeUNoYW5nZTsKKyAgICBmcmllbmQg
Y2xhc3MgRWxlbWVudERlZmluaXRpb25Jc1J1bm5pbmdTZXRGb3JTY29wZTsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGVmMTI2YmM5N2M0YjAyMzM4ZTY4Njg1ZGI2ZDQwZTA4
ZjljYTRmZjQuLmJmMmFhYWIwZmYyOGM4N2QzODMzNGNlNDUyMzRhZmQwNjJiZGJlMjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTkyLDggKzE5Miw4IEBACiAjaW5jbHVkZSA8aW5zcGVj
dG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5o
PgogI2luY2x1ZGUgPHd0Zi9TeXN0ZW1UcmFjaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFy
eUNoYW5nZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1ZmZlci5oPgogI2luY2x1ZGUg
PHlhcnIvUmVndWxhckV4cHJlc3Npb24uaD4KIApAQCAtMTg0MCw3ICsxODQwLDcgQEAgdm9pZCBE
b2N1bWVudDo6cmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSBjaGFuZ2UpCiAgICAgICAgIG1faW5T
dHlsZVJlY2FsYyA9IGZhbHNlOwogCiAgICAgICAgIGlmIChzdHlsZVVwZGF0ZSkgewotICAgICAg
ICAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGluUmVuZGVyVHJlZVVwZGF0ZShtX2luUmVuZGVy
VHJlZVVwZGF0ZSwgdHJ1ZSk7CisgICAgICAgICAgICBTZXRGb3JTY29wZTxib29sPiBpblJlbmRl
clRyZWVVcGRhdGUobV9pblJlbmRlclRyZWVVcGRhdGUsIHRydWUpOwogCiAgICAgICAgICAgICBS
ZW5kZXJUcmVlVXBkYXRlciB1cGRhdGVyKCp0aGlzKTsKICAgICAgICAgICAgIHVwZGF0ZXIuY29t
bWl0KFdURk1vdmUoc3R5bGVVcGRhdGUpKTsKQEAgLTE5NjksNyArMTk2OSw3IEBAIHN0ZDo6dW5p
cXVlX3B0cjxSZW5kZXJTdHlsZT4gRG9jdW1lbnQ6OnN0eWxlRm9yRWxlbWVudElnbm9yaW5nUGVu
ZGluZ1N0eWxlc2hlZXRzCiAgICAgLy8gT24gaU9TIHJlcXVlc3QgZGVsZWdhdGVzIGNhbGxlZCBk
dXJpbmcgc3R5bGVGb3JFbGVtZW50IG1heSByZXN1bHQgaW4gcmUtZW50ZXJpbmcgV2ViS2l0IGFu
ZCBraWxsaW5nIHRoZSBzdHlsZSByZXNvbHZlci4KICAgICBTdHlsZTo6UG9zdFJlc29sdXRpb25D
YWxsYmFja0Rpc2FibGVyIGRpc2FibGVyKCp0aGlzKTsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxi
b29sPiBjaGFuZ2UobV9pZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMsIHRydWUpOworICAgIFNldEZv
clNjb3BlPGJvb2w+IGNoYW5nZShtX2lnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cywgdHJ1ZSk7CiAg
ICAgYXV0byBlbGVtZW50U3R5bGUgPSBlbGVtZW50LnJlc29sdmVTdHlsZShwYXJlbnRTdHlsZSk7
CiAKICAgICBpZiAoZWxlbWVudFN0eWxlLnJlbGF0aW9ucykgewpAQCAtMjIxOCw3ICsyMjE4LDcg
QEAgdm9pZCBEb2N1bWVudDo6ZGVzdHJveVJlbmRlclRyZWUoKQogICAgIEFTU0VSVChoYXNMaXZp
bmdSZW5kZXJUcmVlKCkpOwogICAgIEFTU0VSVChtX3BhZ2VDYWNoZVN0YXRlICE9IEluUGFnZUNh
Y2hlKTsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2UobV9yZW5kZXJUcmVlQmVp
bmdEZXN0cm95ZWQsIHRydWUpOworICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX3JlbmRl
clRyZWVCZWluZ0Rlc3Ryb3llZCwgdHJ1ZSk7CiAKICAgICBpZiAodGhpcyA9PSAmdG9wRG9jdW1l
bnQoKSkKICAgICAgICAgY2xlYXJBWE9iamVjdENhY2hlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0LmNwcAppbmRleCA2MTY0NWVmZWYxOWZjOGMyOTJkYTNjOTMxMDM1OWVmMzFkY2RjYzcxLi42
YzZlNmIwMzU0ODRkYjZlMjg0MjM5NDUxZTljZDk2ZGY4ODBlNTFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldC5jcHAKQEAgLTQyLDggKzQyLDggQEAKICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAgLTE5NCw3ICsxOTQsNyBAQCBib29s
IEV2ZW50VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQmIGV2ZW50KQogICAgIGlmICgh
ZGF0YSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4g
ZmlyaW5nRXZlbnRMaXN0ZW5lcnNTY29wZShkYXRhLT5pc0ZpcmluZ0V2ZW50TGlzdGVuZXJzLCB0
cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBmaXJpbmdFdmVudExpc3RlbmVyc1Njb3BlKGRh
dGEtPmlzRmlyaW5nRXZlbnRMaXN0ZW5lcnMsIHRydWUpOwogCiAgICAgaWYgKGF1dG8qIGxpc3Rl
bmVyc1ZlY3RvciA9IGRhdGEtPmV2ZW50TGlzdGVuZXJNYXAuZmluZChldmVudC50eXBlKCkpKSB7
CiAgICAgICAgIGZpcmVFdmVudExpc3RlbmVycyhldmVudCwgKmxpc3RlbmVyc1ZlY3Rvcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWljcm90YXNrcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWljcm90YXNrcy5jcHAKaW5kZXggY2I0ZjM0Yzg4ZmVjZTM1ZDNmZTA2OWUxNWY4
NzNjOTgyM2I3NmE2MS4uMTk2ZGZlZDEwMjA2NDM1ZjZmZWNlNGM3YTg1OTE0NmZjZWI5ZjhmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01pY3JvdGFza3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NaWNyb3Rhc2tzLmNwcApAQCAtMjMsNyArMjMsNyBAQAogI2luY2x1ZGUg
Ik1pY3JvdGFza3MuaCIKIAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8
d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBNaWNyb3Rhc2tRdWV1
ZTo6cGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKQogICAgIGlmIChtX3BlcmZvcm1pbmdNaWNy
b3Rhc2tDaGVja3BvaW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBUZW1wb3JhcnlDaGFuZ2U8
Ym9vbD4gY2hhbmdlKG1fcGVyZm9ybWluZ01pY3JvdGFza0NoZWNrcG9pbnQsIHRydWUpOworICAg
IFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX3BlcmZvcm1pbmdNaWNyb3Rhc2tDaGVja3BvaW50
LCB0cnVlKTsKIAogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8TWljcm90YXNrPj4gcXVldWUg
PSBXVEZNb3ZlKG1fbWljcm90YXNrUXVldWUpOwogICAgIGZvciAoYXV0byYgdGFzayA6IHF1ZXVl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKaW5kZXggNWU1ZWRhMTMyMzRhNGZi
OTUzYzA1NTVkOTdiY2EwMTQ4NDgwNzA5YS4uZWI2MWEzNDUxNzM2NzQ0Y2RlZTNjYTA2YjU2ZWVk
YWE4YWRmY2U5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcApAQCAtNTIsNyAr
NTIsNyBAQAogI2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3Rm
L1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRl
bmF0ZS5oPgogCkBAIC0yOTEsNyArMjkxLDcgQEAgYm9vbCBQYWdlQ2FjaGU6OmNhbkNhY2hlKFBh
Z2UmIHBhZ2UpIGNvbnN0CiAKIHZvaWQgUGFnZUNhY2hlOjpwcnVuZVRvU2l6ZU5vdyh1bnNpZ25l
ZCBzaXplLCBQcnVuaW5nUmVhc29uIHBydW5pbmdSZWFzb24pCiB7Ci0gICAgVGVtcG9yYXJ5Q2hh
bmdlPHVuc2lnbmVkPiBjaGFuZ2UobV9tYXhTaXplLCBzaXplKTsKKyAgICBTZXRGb3JTY29wZTx1
bnNpZ25lZD4gY2hhbmdlKG1fbWF4U2l6ZSwgc2l6ZSk7CiAgICAgcHJ1bmUocHJ1bmluZ1JlYXNv
bik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcAppbmRleCBlYzdjYzQxMDQx
MjM1YWY1ZmNiOTk2MTg0Nzc2OWQzZTU3ZjhhMTE0Li5iMWE1NWNjMjk1ZWVhY2ViNDM4ODYwODM5
ZDlmYzJlYTViMTRlYzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2Vu
TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0z
MCw3ICszMCw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIlNw
YWNlU3BsaXRTdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0
Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgogCkBAIC0yNTIsNyArMjUyLDcgQEAgdm9pZCBET01Ub2tlbkxpc3Q6OnVw
ZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zKCkKICAgICB9CiAgICAgQXRvbWljU3Ry
aW5nIHNlcmlhbGl6ZWRWYWx1ZSA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKIAotICAgIFRl
bXBvcmFyeUNoYW5nZTxib29sPiBpbkF0dHJpYnV0ZVVwZGF0ZShtX2luVXBkYXRlQXNzb2NpYXRl
ZEF0dHJpYnV0ZUZyb21Ub2tlbnMsIHRydWUpOworICAgIFNldEZvclNjb3BlPGJvb2w+IGluQXR0
cmlidXRlVXBkYXRlKG1faW5VcGRhdGVBc3NvY2lhdGVkQXR0cmlidXRlRnJvbVRva2VucywgdHJ1
ZSk7CiAgICAgbV9lbGVtZW50LnNldEF0dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUsIHNlcmlhbGl6
ZWRWYWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NT
U1ByZWxvYWRTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxv
YWRTY2FubmVyLmNwcAppbmRleCBhMDliMTM1ZjY1ZjJmYWNjMjY4OWM0ODA3ODM5MTQyZDhhNmQ4
YmFjLi5kZjM3NDFiODZiMDE0M2EzZjQxZGFhYWJhMTQxYTYwNDk5YzA5MTc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0yOSw3
ICsyOSw3IEBACiAjaW5jbHVkZSAiQ1NTUHJlbG9hZFNjYW5uZXIuaCIKIAogI2luY2x1ZGUgIkhU
TUxQYXJzZXJJZGlvbXMuaCIKLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5j
bHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTMs
NyArNTMsNyBAQCB2b2lkIENTU1ByZWxvYWRTY2FubmVyOjpyZXNldCgpCiB2b2lkIENTU1ByZWxv
YWRTY2FubmVyOjpzY2FuKGNvbnN0IEhUTUxUb2tlbjo6RGF0YVZlY3RvciYgZGF0YSwgUHJlbG9h
ZFJlcXVlc3RTdHJlYW0mIHJlcXVlc3RzKQogewogICAgIEFTU0VSVCghbV9yZXF1ZXN0cyk7Ci0g
ICAgVGVtcG9yYXJ5Q2hhbmdlPFByZWxvYWRSZXF1ZXN0U3RyZWFtKj4gY2hhbmdlKG1fcmVxdWVz
dHMsICZyZXF1ZXN0cyk7CisgICAgU2V0Rm9yU2NvcGU8UHJlbG9hZFJlcXVlc3RTdHJlYW0qPiBj
aGFuZ2UobV9yZXF1ZXN0cywgJnJlcXVlc3RzKTsKIAogICAgIGZvciAoVUNoYXIgYyA6IGRhdGEp
IHsKICAgICAgICAgaWYgKG1fc3RhdGUgPT0gRG9uZVBhcnNpbmdJbXBvcnRSdWxlcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCmluZGV4
IDAyZTkzZTk0MWY3YTkzY2M1YWZjZjY1ZDI1YzQzNGIwM2ZiMGEwMjEuLjMzZTFiYjg1NjYyZGFl
MTM0NWI1NmY4ODBlNDU0OTEwYmI3YzBlOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1
ZGUgIkhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNo
YW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTcwLDcgKzE3MCw3IEBAIGNsYXNzIEhU
TUxDb25zdHJ1Y3Rpb25TaXRlIHsKICAgICAgICAgeyB9CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gbV9yZWRpcmVjdEF0dGFjaFRvRm9zdGVyUGFyZW50Q2hh
bmdlOworICAgICAgICBTZXRGb3JTY29wZTxib29sPiBtX3JlZGlyZWN0QXR0YWNoVG9Gb3N0ZXJQ
YXJlbnRDaGFuZ2U7CiAgICAgfTsKIAogICAgIHN0YXRpYyBib29sIGlzRm9ybWF0dGluZ1RhZyhj
b25zdCBBdG9taWNTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
b250ZW50RmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db250ZW50RmlsdGVyLmNw
cAppbmRleCA5YWI0OTI5NTcxMmY5NzVhNDhlYmM4NGU2M2M5MWIyOTA1ZmE3NjM3Li42ZjJlNTAz
NzY1ZTFhMmYxMmYyOGZjNmMzODljOGNkZDI2OWMyMzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvQ29udGVudEZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0NvbnRlbnRGaWx0ZXIuY3BwCkBAIC00Miw3ICs0Miw3IEBACiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0
Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiAhTE9HX0RJU0FCTEVE
CkBAIC0yOTIsNyArMjkyLDcgQEAgdm9pZCBDb250ZW50RmlsdGVyOjpoYW5kbGVQcm92aXNpb25h
bExvYWRGYWlsdXJlKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IHJlcGxhY2VtZW50RGF0YSB7IG1fYmxvY2tpbmdDb250ZW50RmlsdGVyLT5yZXBs
YWNlbWVudERhdGEoKSB9OwogICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UgeyBVUkwoKSwg
QVNDSUlMaXRlcmFsKCJ0ZXh0L2h0bWwiKSwgcmVwbGFjZW1lbnREYXRhLT5zaXplKCksIEFTQ0lJ
TGl0ZXJhbCgiVVRGLTgiKSB9OwogICAgIFN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhIHsg
V1RGTW92ZShyZXBsYWNlbWVudERhdGEpLCBlcnJvci5mYWlsaW5nVVJMKCksIHJlc3BvbnNlLCBT
dWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5OjpIaWRkZW4gfTsKLSAgICBU
ZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gbG9hZGluZ0Jsb2NrZWRQYWdlIHsgbV9pc0xvYWRpbmdCbG9j
a2VkUGFnZSwgdHJ1ZSB9OworICAgIFNldEZvclNjb3BlPGJvb2w+IGxvYWRpbmdCbG9ja2VkUGFn
ZSB7IG1faXNMb2FkaW5nQmxvY2tlZFBhZ2UsIHRydWUgfTsKICAgICBtX2RvY3VtZW50TG9hZGVy
LmZyYW1lTG9hZGVyKCktPmxvYWQoRnJhbWVMb2FkUmVxdWVzdChtX2RvY3VtZW50TG9hZGVyLmZy
YW1lKCksIGJsb2NrZWRQYWdlVVJMKCksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZE5vdEFsbG93LCBzdWJzdGl0dXRlRGF0YSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAppbmRleCBjMzNhOGM5YTg4ZTczZDhlOWIxZTg3NDE3
OTdkMGM4MzU4NmY5OTBkLi42ZDE2MDY3Mzk5NmMyY2MyOTQ1NjZmNWU5NzNmMzVjYWUyOTY2ZmRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ1
LDggKzQ1LDggQEAKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVk
ZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KKyNp
bmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvTWVtb3J5Q2FjaGUuY3BwCmluZGV4IDA2NmY0N2UwYjE5NjcyMTg1ZmNmYWVjMDkzNmI2ZmJj
NmZhOTA5ZTMuLmQ4ZDMwZGZjNGVlOTEwM2IzNGRmOGExN2JiZDQ3NWRkOGE5ZTgyNzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcApAQCAtNDMsNyArNDMs
NyBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0
cmFzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1Rl
bXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzE0LDcgKzMx
NCw3IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnBydW5lTGl2ZVJlc291cmNlc1RvU2l6ZSh1bnNpZ25l
ZCB0YXJnZXRTaXplLCBib29sIHNob3VsZERlc3RyCiB7CiAgICAgaWYgKG1faW5QcnVuZVJlc291
cmNlcykKICAgICAgICAgcmV0dXJuOwotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiByZWVudHJh
bmN5UHJvdGVjdG9yKG1faW5QcnVuZVJlc291cmNlcywgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8
Ym9vbD4gcmVlbnRyYW5jeVByb3RlY3RvcihtX2luUHJ1bmVSZXNvdXJjZXMsIHRydWUpOwogCiAg
ICAgZG91YmxlIGN1cnJlbnRUaW1lID0gRnJhbWVWaWV3OjpjdXJyZW50UGFpbnRUaW1lU3RhbXAo
KTsKICAgICBpZiAoIWN1cnJlbnRUaW1lKSAvLyBJbiBjYXNlIHBydW5lIGlzIGNhbGxlZCBkaXJl
Y3RseSwgb3V0c2lkZSBvZiBhIEZyYW1lIHBhaW50LgpAQCAtMzcxLDcgKzM3MSw3IEBAIHZvaWQg
TWVtb3J5Q2FjaGU6OnBydW5lRGVhZFJlc291cmNlc1RvU2l6ZSh1bnNpZ25lZCB0YXJnZXRTaXpl
KQogewogICAgIGlmIChtX2luUHJ1bmVSZXNvdXJjZXMpCiAgICAgICAgIHJldHVybjsKLSAgICBU
ZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gcmVlbnRyYW5jeVByb3RlY3RvcihtX2luUHJ1bmVSZXNvdXJj
ZXMsIHRydWUpOworICAgIFNldEZvclNjb3BlPGJvb2w+IHJlZW50cmFuY3lQcm90ZWN0b3IobV9p
blBydW5lUmVzb3VyY2VzLCB0cnVlKTsKICAKICAgICBpZiAodGFyZ2V0U2l6ZSAmJiBtX2RlYWRT
aXplIDw9IHRhcmdldFNpemUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApp
bmRleCBlODIzMzUyMWM1ZGE2NTVkODNiNzE2NGNlYWE4YzUyOTc5ZmYwYjc5Li5kOWVhYzAwOWI1
NmI5YzFmODdjOTk0ZjQ3YTQ3MDg2MTE3NWY2YmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBA
IC01MSw3ICs1MSw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9WTS5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UZW1w
b3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKQEAgLTIyMiw3ICsy
MjIsNyBAQCB2b2lkIENocm9tZTo6cnVuTW9kYWwoKSBjb25zdAogCiAgICAgLy8gSmF2YVNjcmlw
dCB0aGF0IHJ1bnMgd2l0aGluIHRoZSBuZXN0ZWQgZXZlbnQgbG9vcCBtdXN0IG5vdCBiZSBydW4g
aW4gdGhlIGNvbnRleHQgb2YgdGhlCiAgICAgLy8gc2NyaXB0IHRoYXQgY2FsbGVkIHNob3dNb2Rh
bERpYWxvZy4gTnVsbCBvdXQgZW50cnlTY29wZSB0byBicmVhayB0aGUgY29ubmVjdGlvbi4KLSAg
ICBUZW1wb3JhcnlDaGFuZ2U8SlNDOjpWTUVudHJ5U2NvcGUqPiBlbnRyeVNjb3BlTnVsbGlmaWVy
IHsgbV9wYWdlLm1haW5GcmFtZSgpLmRvY3VtZW50KCktPnZtKCkuZW50cnlTY29wZSwgbnVsbHB0
ciB9OworICAgIFNldEZvclNjb3BlPEpTQzo6Vk1FbnRyeVNjb3BlKj4gZW50cnlTY29wZU51bGxp
ZmllciB7IG1fcGFnZS5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT52bSgpLmVudHJ5U2NvcGUsIG51
bGxwdHIgfTsKIAogICAgIFRpbWVyQmFzZTo6ZmlyZVRpbWVyc0luTmVzdGVkRXZlbnRMb29wKCk7
CiAgICAgbV9jbGllbnQucnVuTW9kYWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRl
eCAyZWY1ODM4YWIzNDRhOGJiOTJhNGNlY2NiZDFjMjU2YjYzMjg2Y2M5Li5mZmU2MjBiOTdlM2Y0
NzdhMjY0ZmUzODAwYjE2YzE2NzRmYjZjNWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CkBAIC05OSw4ICs5OSw4IEBACiAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNs
dWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8
d3RmL1N5c3RlbVRyYWNpbmcuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAK
ICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3Rv
cmUuaCIKQEAgLTEyODgsMTAgKzEyODgsMTAgQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91dChib29s
IGFsbG93U3VidHJlZSkKIAogICAgIC8vIE1hbnkgb2YgdGhlIHRhc2tzIHBlcmZvcm1lZCBkdXJp
bmcgbGF5b3V0IGNhbiBjYXVzZSB0aGlzIGZ1bmN0aW9uIHRvIGJlIHJlLWVudGVyZWQsCiAgICAg
Ly8gc28gc2F2ZSB0aGUgbGF5b3V0IHBoYXNlIG5vdyBhbmQgcmVzdG9yZSBpdCBvbiBleGl0Lgot
ICAgIFRlbXBvcmFyeUNoYW5nZTxMYXlvdXRQaGFzZT4gbGF5b3V0UGhhc2VSZXN0b3JlcihtX2xh
eW91dFBoYXNlLCBJblByZUxheW91dCk7CisgICAgU2V0Rm9yU2NvcGU8TGF5b3V0UGhhc2U+IGxh
eW91dFBoYXNlUmVzdG9yZXIobV9sYXlvdXRQaGFzZSwgSW5QcmVMYXlvdXQpOwogCiAgICAgLy8g
RXZlcnkgc2Nyb2xsIHRoYXQgaGFwcGVucyBkdXJpbmcgbGF5b3V0IGlzIHByb2dyYW1tYXRpYy4K
LSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hhbmdlSW5Qcm9ncmFtbWF0aWNTY3JvbGwobV9p
blByb2dyYW1tYXRpY1Njcm9sbCwgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdl
SW5Qcm9ncmFtbWF0aWNTY3JvbGwobV9pblByb2dyYW1tYXRpY1Njcm9sbCwgdHJ1ZSk7CiAKICAg
ICBib29sIGluQ2hpbGRGcmFtZUxheW91dFdpdGhGcmFtZUZsYXR0ZW5pbmcgPSBpc0luQ2hpbGRG
cmFtZVdpdGhGcmFtZUZsYXR0ZW5pbmcoKTsKIApAQCAtMTMzMSwxMiArMTMzMSwxMiBAQCB2b2lk
IEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0cmVlKQogICAgIEFTU0VSVChkb2N1bWVu
dC5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CiAKICAgICB7
Ci0gICAgICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2VTY2hlZHVsaW5nRW5hYmxlZCht
X2xheW91dFNjaGVkdWxpbmdFbmFibGVkLCBmYWxzZSk7CisgICAgICAgIFNldEZvclNjb3BlPGJv
b2w+IGNoYW5nZVNjaGVkdWxpbmdFbmFibGVkKG1fbGF5b3V0U2NoZWR1bGluZ0VuYWJsZWQsIGZh
bHNlKTsKIAogICAgICAgICBpZiAoIW1fbmVzdGVkTGF5b3V0Q291bnQgJiYgIW1faW5TeW5jaHJv
bm91c1Bvc3RMYXlvdXQgJiYgbV9wb3N0TGF5b3V0VGFza3NUaW1lci5pc0FjdGl2ZSgpICYmICFp
bkNoaWxkRnJhbWVMYXlvdXRXaXRoRnJhbWVGbGF0dGVuaW5nKSB7CiAgICAgICAgICAgICAvLyBU
aGlzIGlzIGEgbmV3IHRvcC1sZXZlbCBsYXlvdXQuIElmIHRoZXJlIGFyZSBhbnkgcmVtYWluaW5n
IHRhc2tzIGZyb20gdGhlIHByZXZpb3VzCiAgICAgICAgICAgICAvLyBsYXlvdXQsIGZpbmlzaCB0
aGVtIG5vdy4KLSAgICAgICAgICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBpblN5bmNocm9ub3Vz
UG9zdExheW91dENoYW5nZShtX2luU3luY2hyb25vdXNQb3N0TGF5b3V0LCB0cnVlKTsKKyAgICAg
ICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGluU3luY2hyb25vdXNQb3N0TGF5b3V0Q2hhbmdlKG1f
aW5TeW5jaHJvbm91c1Bvc3RMYXlvdXQsIHRydWUpOwogICAgICAgICAgICAgcGVyZm9ybVBvc3RM
YXlvdXRUYXNrcygpOwogICAgICAgICB9CiAKQEAgLTEzNzgsNyArMTM3OCw3IEBAIHZvaWQgRnJh
bWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgKyttX25lc3RlZExheW91dENv
dW50OwogCiAgICAgewotICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hhbmdlU2NoZWR1
bGluZ0VuYWJsZWQobV9sYXlvdXRTY2hlZHVsaW5nRW5hYmxlZCwgZmFsc2UpOworICAgICAgICBT
ZXRGb3JTY29wZTxib29sPiBjaGFuZ2VTY2hlZHVsaW5nRW5hYmxlZChtX2xheW91dFNjaGVkdWxp
bmdFbmFibGVkLCBmYWxzZSk7CiAKICAgICAgICAgYXV0b1NpemVJZkVuYWJsZWQoKTsKIApAQCAt
MTU1MCw3ICsxNTUwLDcgQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91dChib29sIGFsbG93U3VidHJl
ZSkKICAgICAgICAgICAgIGlmIChpbkNoaWxkRnJhbWVMYXlvdXRXaXRoRnJhbWVGbGF0dGVuaW5n
KQogICAgICAgICAgICAgICAgIHVwZGF0ZVdpZGdldFBvc2l0aW9ucygpOwogICAgICAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGluU3luY2hyb25v
dXNQb3N0TGF5b3V0Q2hhbmdlKG1faW5TeW5jaHJvbm91c1Bvc3RMYXlvdXQsIHRydWUpOworICAg
ICAgICAgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGluU3luY2hyb25vdXNQb3N0TGF5b3V0Q2hh
bmdlKG1faW5TeW5jaHJvbm91c1Bvc3RMYXlvdXQsIHRydWUpOwogICAgICAgICAgICAgICAgIHBl
cmZvcm1Qb3N0TGF5b3V0VGFza3MoKTsgLy8gQ2FsbHMgcmVzdW1lU2NoZWR1bGVkRXZlbnRzKCku
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTIzNTksNyArMjM1OSw3IEBAIHZvaWQgRnJh
bWVWaWV3OjpzY3JvbGxFbGVtZW50VG9SZWN0KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0
IEludFJlY3QmIHJlY3QpCiAKIHZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25z
dCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24pCiB7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdl
PGJvb2w+IGNoYW5nZUluUHJvZ3JhbW1hdGljU2Nyb2xsKG1faW5Qcm9ncmFtbWF0aWNTY3JvbGws
IHRydWUpOworICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZUluUHJvZ3JhbW1hdGljU2Nyb2xs
KG1faW5Qcm9ncmFtbWF0aWNTY3JvbGwsIHRydWUpOwogICAgIG1fbWFpbnRhaW5TY3JvbGxQb3Np
dGlvbkFuY2hvciA9IG51bGxwdHI7CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwog
ICAgIGlmIChwYWdlICYmIHBhZ2UtPmV4cGVjdHNXaGVlbEV2ZW50VHJpZ2dlcnMoKSkKQEAgLTI0
NjUsNyArMjQ2NSw3IEBAIHZvaWQgRnJhbWVWaWV3OjphcHBseVJlY3Vyc2l2ZWx5V2l0aFZpc2li
bGVSZWN0KGNvbnN0IHN0ZDo6ZnVuY3Rpb248dm9pZCAoRnJhbWVWCiAgICAgYXBwbHkoKnRoaXMs
IHZpc2libGVSZWN0KTsKIAogICAgIC8vIFJlY3Vyc2l2ZSBjYWxsIGZvciBzdWJmcmFtZXMuIFdl
IGNhY2hlIHRoZSBjdXJyZW50IEZyYW1lVmlldydzIHdpbmRvd0NsaXBSZWN0IHRvIGF2b2lkIHJl
Y29tcHV0aW5nIGl0IGZvciBldmVyeSBzdWJmcmFtZS4KLSAgICBUZW1wb3JhcnlDaGFuZ2U8SW50
UmVjdCo+IHdpbmRvd0NsaXBSZWN0Q2FjaGUobV9jYWNoZWRXaW5kb3dDbGlwUmVjdCwgJndpbmRv
d0NsaXBSZWN0KTsKKyAgICBTZXRGb3JTY29wZTxJbnRSZWN0Kj4gd2luZG93Q2xpcFJlY3RDYWNo
ZShtX2NhY2hlZFdpbmRvd0NsaXBSZWN0LCAmd2luZG93Q2xpcFJlY3QpOwogICAgIGZvciAoRnJh
bWUqIGNoaWxkRnJhbWUgPSBmcmFtZSgpLnRyZWUoKS5maXJzdENoaWxkKCk7IGNoaWxkRnJhbWU7
IGNoaWxkRnJhbWUgPSBjaGlsZEZyYW1lLT50cmVlKCkubmV4dFNpYmxpbmcoKSkgewogICAgICAg
ICBpZiAoYXV0byogY2hpbGRWaWV3ID0gY2hpbGRGcmFtZS0+dmlldygpKQogICAgICAgICAgICAg
Y2hpbGRWaWV3LT5hcHBseVJlY3Vyc2l2ZWx5V2l0aFZpc2libGVSZWN0KGFwcGx5KTsKQEAgLTM1
MzksNyArMzUzOSw3IEBAIHZvaWQgRnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCgpCiAKICAg
ICBMT0coTGF5b3V0LCAiRnJhbWVWaWV3ICVwIGF1dG9TaXplSWZFbmFibGVkIiwgdGhpcyk7CiAK
LSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hhbmdlSW5BdXRvU2l6ZShtX2luQXV0b1NpemUs
IHRydWUpOworICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZUluQXV0b1NpemUobV9pbkF1dG9T
aXplLCB0cnVlKTsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lKCkuZG9jdW1lbnQo
KTsKICAgICBpZiAoIWRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9j
c3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0Nv
bnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5kZXggNGRkNjdlMWYwYzcxMjJmOTNmN2Y3YmQxMWJk
YmVhMWI1NGRkNjMwYS4uNWM4YmYxM2E0MDExZjBmYjZmMTIzZDA2NDE4MDg1YWVhNTkzNmM2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3ku
Y3BwCkBAIC01Nyw3ICs1Nyw3IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvclZhbHVl
cy5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxp
bnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3Jh
cnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+
CiAKQEAgLTE0Nyw3ICsxNDcsNyBAQCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXNwb25zZUhlYWRlcnMoKSBjbwogCiB2b2lkIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2ZUhlYWRlcnMoY29uc3QgQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBoZWFkZXJzLCBSZXBvcnRQYXJzaW5nRXJyb3JzIHJl
cG9ydFBhcnNpbmdFcnJvcnMpCiB7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGlzUmVwb3J0
aW5nRW5hYmxlZChtX2lzUmVwb3J0aW5nRW5hYmxlZCwgcmVwb3J0UGFyc2luZ0Vycm9ycyA9PSBS
ZXBvcnRQYXJzaW5nRXJyb3JzOjpZZXMpOworICAgIFNldEZvclNjb3BlPGJvb2w+IGlzUmVwb3J0
aW5nRW5hYmxlZChtX2lzUmVwb3J0aW5nRW5hYmxlZCwgcmVwb3J0UGFyc2luZ0Vycm9ycyA9PSBS
ZXBvcnRQYXJzaW5nRXJyb3JzOjpZZXMpOwogICAgIGZvciAoYXV0byYgaGVhZGVyIDogaGVhZGVy
cy5tX2hlYWRlcnMpCiAgICAgICAgIGRpZFJlY2VpdmVIZWFkZXIoaGVhZGVyLmZpcnN0LCBoZWFk
ZXIuc2Vjb25kLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlBvbGljeUZyb206OkhUVFBIZWFkZXIp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNw
cAppbmRleCA2NDNiYmRiOWJmYmVmMDg2MGFmNTMxOGU1NGVlNjg4YmVhY2MxYTA1Li43MTM3YzU5
YTMzOWFjMzAyY2YwZDI3NWZjZTdhNDNhYmNiMDA2OTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMzcsNyArMzcsNyBAQAogI2lu
Y2x1ZGUgIlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGUuaCIKICNpbmNsdWRlICJT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oIgogI2luY2x1ZGUgIlRleHRTdHJlYW0uaCIKLSNp
bmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3Bl
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgU2Ny
b2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0
ZVRyZWU+IHNjcm9sbGluCiAgICAgfQogICAgIAogICAgIGJvb2wgc2Nyb2xsUmVxdWVzdElzUHJv
Z2FtbWF0aWMgPSByb290Tm9kZSA/IHJvb3ROb2RlLT5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJl
cHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSA6IGZhbHNlOwotICAgIFRlbXBvcmFyeUNoYW5n
ZTxib29sPiBjaGFuZ2VIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbChtX2lzSGFuZGxpbmdQcm9n
cmFtbWF0aWNTY3JvbGwsIHNjcm9sbFJlcXVlc3RJc1Byb2dhbW1hdGljKTsKKyAgICBTZXRGb3JT
Y29wZTxib29sPiBjaGFuZ2VIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbChtX2lzSGFuZGxpbmdQ
cm9ncmFtbWF0aWNTY3JvbGwsIHNjcm9sbFJlcXVlc3RJc1Byb2dhbW1hdGljKTsKIAogICAgIHJl
bW92ZURlc3Ryb3llZE5vZGVzKCpzY3JvbGxpbmdTdGF0ZVRyZWUpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApp
bmRleCBhOGExNGVmODBlN2NkYjE3ZDUyZTRlNGFmNGE0MzczNzYyMmE0YTE3Li42NTk4MDIwYTdj
MzUxOTkzNDY5Mzk4M2U3MDhhMTIyMWU2NjY0YmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTUwLDgg
KzUwLDggQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0
aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9TeXN0ZW1UcmFjaW5nLmg+Ci0jaW5jbHVk
ZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMTUzNCw3ICsxNTM0LDcgQEAgc3RhdGljIGJvb2wg
aXNDdXN0b21CYWNrZHJvcExheWVyVHlwZShQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSBsYXll
clR5cGUpCiAKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZvcmVT
dWJsYXllcnMoQ29tbWl0U3RhdGUmIGNvbW1pdFN0YXRlLCBmbG9hdCBwYWdlU2NhbGVGYWN0b3Is
IGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uUmVsYXRpdmVUb0Jhc2UpCiB7Ci0gICAgVGVtcG9y
YXJ5Q2hhbmdlPGJvb2w+IGNvbW1pdHRpbmdDaGFuZ2VzQ2hhbmdlKG1faXNDb21taXR0aW5nQ2hh
bmdlcywgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY29tbWl0dGluZ0NoYW5nZXNDaGFu
Z2UobV9pc0NvbW1pdHRpbmdDaGFuZ2VzLCB0cnVlKTsKIAogICAgICsrY29tbWl0U3RhdGUudHJl
ZURlcHRoOwogICAgIGlmIChtX3N0cnVjdHVyYWxMYXllcikKQEAgLTE2ODgsNyArMTY4OCw3IEBA
IHZvaWQgR3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNBZnRlclN1YmxheWVycyhD
b21taXRTdGF0ZSYgY29tbWl0U3RhdGUpCiAgICAgaWYgKCFtX3VuY29tbWl0dGVkQ2hhbmdlcykK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNvbW1pdHRpbmdD
aGFuZ2VzQ2hhbmdlKG1faXNDb21taXR0aW5nQ2hhbmdlcywgdHJ1ZSk7CisgICAgU2V0Rm9yU2Nv
cGU8Ym9vbD4gY29tbWl0dGluZ0NoYW5nZXNDaGFuZ2UobV9pc0NvbW1pdHRpbmdDaGFuZ2VzLCB0
cnVlKTsKIAogICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIE1hc2tMYXllckNoYW5nZWQp
CiAgICAgICAgIHVwZGF0ZU1hc2tMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RlbXBvcmFyeU9wZW5HTFNldHRpbmcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZW1wb3JhcnlPcGVuR0xTZXR0aW5n
LmgKaW5kZXggODMzZjhiNmJlNjVkMzc5NTYwYjAyZGQ2YzkwNzY5MDg1YTg1MjgzOC4uY2I1MTY5
NWI3MWRiNzUyNzZhYjE0Mzg2M2NlYWI3YzdiN2MxNjdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RlbXBvcmFyeU9wZW5HTFNldHRpbmcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9yYXJ5T3Bl
bkdMU2V0dGluZy5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIHZh
bHVlIHVwb24gZGVzdHJ1Y3Rpb24sIG1ha2luZyBpdCBhbiBhbHRlcm5hdGl2ZSB0byBjaGVja2lu
ZywgY2xlYXJpbmcsIGFuZCByZXNldHRpbmcgZWFjaCBmbGFnCiAvLyBhdCBhbGwgb2YgYSBibG9j
aydzIGV4aXQgcG9pbnRzLgogLy8KLS8vIEJhc2VkIG9uIFdURjo6VGVtcG9yYXJ5Q2hhbmdlPD4K
Ky8vIEJhc2VkIG9uIFdURjo6U2V0Rm9yU2NvcGU8PgogCiBjbGFzcyBUZW1wb3JhcnlPcGVuR0xT
ZXR0aW5nIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUZW1wb3JhcnlPcGVuR0xTZXR0aW5n
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggZjExMjFhNWIxOTZjY2M3Y2NmMzVhODBhNzQ4
OTllMjNhYTEwMjNlMy4uMjE3YmE1ZGNhYjQ0MTcwNzBhMDRiNzMwNDBkYmVhNTMxYWNkZDVmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiAjaWYgVVNFKENBSVJPKQogI2luY2x1ZGUgIkNh
aXJvVXRpbGl0aWVzLmgiCkBAIC00MTIsNyArNDEyLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6
OmRyYXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmIHRleHR1cmUsIGNvbnN0IEZsb2F0UmVj
dCYKICAgICAgICAgcmV0dXJuOwogCiAgICAgY29uc3QgQml0bWFwVGV4dHVyZUdMJiB0ZXh0dXJl
R0wgPSBzdGF0aWNfY2FzdDxjb25zdCBCaXRtYXBUZXh0dXJlR0wmPih0ZXh0dXJlKTsKLSAgICBU
ZW1wb3JhcnlDaGFuZ2U8Y29uc3QgQml0bWFwVGV4dHVyZUdMOjpGaWx0ZXJJbmZvKj4gZmlsdGVy
SW5mbyhkYXRhKCkuZmlsdGVySW5mbywgdGV4dHVyZUdMLmZpbHRlckluZm8oKSk7CisgICAgU2V0
Rm9yU2NvcGU8Y29uc3QgQml0bWFwVGV4dHVyZUdMOjpGaWx0ZXJJbmZvKj4gZmlsdGVySW5mbyhk
YXRhKCkuZmlsdGVySW5mbywgdGV4dHVyZUdMLmZpbHRlckluZm8oKSk7CiAKICAgICBkcmF3VGV4
dHVyZSh0ZXh0dXJlR0wuaWQoKSwgdGV4dHVyZUdMLmlzT3BhcXVlKCkgPyAwIDogU2hvdWxkQmxl
bmQsIHRleHR1cmVHTC5zaXplKCksIHRhcmdldFJlY3QsIG1hdHJpeCwgb3BhY2l0eSwgZXhwb3Nl
ZEVkZ2VzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5jcHAKaW5kZXggNzQ4YWQ4ZTllMzgwYTNlZTcyYTZhMDIxNTgyNGVmOGQ0
MTdlYzMxMC4uNjBlNjMzMjc0MDllMjAyOWYxMzgwOTQ4ZjJmMWZmYTdhOTFmMTQxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5j
cHAKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogI2luY2x1
ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2lmbmRlZiBOREVCVUcKLSNpbmNsdWRlIDx3dGYvVGVt
cG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjZW5kaWYKICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTEwNDEsNyArMTA0MSw3IEBAIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp1cGRhdGVDb250ZW50QnVmZmVycygpCiB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cHVyZ2VCYWNraW5nU3RvcmVzKCkKIHsKICNpZm5kZWYg
TkRFQlVHCi0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHVwZGF0ZU1vZGVQcm90ZWN0b3IobV9p
c1B1cmdpbmcsIHRydWUpOworICAgIFNldEZvclNjb3BlPGJvb2w+IHVwZGF0ZU1vZGVQcm90ZWN0
b3IobV9pc1B1cmdpbmcsIHRydWUpOwogI2VuZGlmCiAgICAgbV9tYWluQmFja2luZ1N0b3JlID0g
bnVsbHB0cjsKICAgICBtX3ByZXZpb3VzQmFja2luZ1N0b3JlID0gbnVsbHB0cjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0xheWVyRGly
ZWN0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNz
TGF5ZXJEaXJlY3QyRC5jcHAKaW5kZXggZjkyYzEyNzhkMDhmNDVjYWU1ZWQ4NTQzZjljOGI1YjQ5
YTZkYjAzOC4uNTU2MjIzOTU1NTlhNjdkYmYzMWZiOGIxYmEzNTY4ODI0NDYxNmI2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzTGF5ZXJE
aXJlY3QyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dy
YXBoaWNzTGF5ZXJEaXJlY3QyRC5jcHAKQEAgLTM1LDggKzM1LDggQEAKICNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1
ZGUgPHd0Zi9TeXN0ZW1UcmFjaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcAppbmRleCBhNTQ1OWQ5Y2RhNTlm
NTUyM2JkNWViMTliMTE4NWU0MGE5NzYwMzUzLi5mMGIzYTVhNzM1YzhlZGUxMDg0Zjc4YzAwMTk4
YTU5NzA2N2RlZGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFz
dGVib2FyZEhlbHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3Rl
Ym9hcmRIZWxwZXIuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiR3RrVmVyc2lvbmlu
Zy5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkRhdGEuaCIKICNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0j
aW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29w
ZS5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAKQEAgLTI4OSw3ICsyODksNyBAQCB2b2lkIFBhc3RlYm9hcmRIZWxwZXI6
OndyaXRlQ2xpcGJvYXJkQ29udGVudHMoR3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIGNvbnN0IFNl
bAogICAgIEd0a1RhcmdldEVudHJ5KiB0YWJsZSA9IGd0a190YXJnZXRfdGFibGVfbmV3X2Zyb21f
bGlzdChsaXN0LmdldCgpLCAmbnVtYmVyT2ZUYXJnZXRzKTsKIAogICAgIGlmIChudW1iZXJPZlRh
cmdldHMgPiAwICYmIHRhYmxlKSB7Ci0gICAgICAgIFRlbXBvcmFyeUNoYW5nZTxTZWxlY3Rpb25E
YXRhKj4gY2hhbmdlKHNldHRpbmdDbGlwYm9hcmRTZWxlY3Rpb24sIGNvbnN0X2Nhc3Q8U2VsZWN0
aW9uRGF0YSo+KCZzZWxlY3Rpb24pKTsKKyAgICAgICAgU2V0Rm9yU2NvcGU8U2VsZWN0aW9uRGF0
YSo+IGNoYW5nZShzZXR0aW5nQ2xpcGJvYXJkU2VsZWN0aW9uLCBjb25zdF9jYXN0PFNlbGVjdGlv
bkRhdGEqPigmc2VsZWN0aW9uKSk7CiAgICAgICAgIGF1dG8gZGF0YSA9IHN0ZDo6bWFrZV91bmlx
dWU8Q2xpcGJvYXJkU2V0RGF0YT4oKnNldHRpbmdDbGlwYm9hcmRTZWxlY3Rpb24sIFdURk1vdmUo
cHJpbWFyeVNlbGVjdGlvbkNsZWFyZWQpKTsKICAgICAgICAgaWYgKGd0a19jbGlwYm9hcmRfc2V0
X3dpdGhfZGF0YShjbGlwYm9hcmQsIHRhYmxlLCBudW1iZXJPZlRhcmdldHMsIGdldENsaXBib2Fy
ZENvbnRlbnRzQ2FsbGJhY2ssIGNsZWFyQ2xpcGJvYXJkQ29udGVudHNDYWxsYmFjaywgZGF0YS5n
ZXQoKSkpIHsKICAgICAgICAgICAgIGd0a19jbGlwYm9hcmRfc2V0X2Nhbl9zdG9yZShjbGlwYm9h
cmQsIG51bGxwdHIsIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbGJhclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bGJhclRoZW1lTWFjLm1tCmluZGV4IDE1MGZhYmU4ZTM3NzRmMDYyNWY4NTk2NjRjYWY3ODc0Y2M3
YzY1YTkuLmIyZTE2MThjMDMyZmI3YzY1ZjFmZTE5MTdmMjA0ZTI5Njc0YzM4OWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTQw
LDggKzQwLDggQEAKICNpbmNsdWRlIDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5j
bHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgot
I2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KIAogLy8gRklYTUU6IFRoZXJlIGFyZSBy
ZXBhaW50aW5nIHByb2JsZW1zIGR1ZSB0byBBcXVhIHNjcm9sbCBiYXIgYnV0dG9ucycgdmlzdWFs
IG92ZXJmbG93LgogCkBAIC01NDksNyArNTQ5LDcgQEAgYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6
cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY28K
ICAgICBpZiAoc2Nyb2xsYmFyLnN1cHBvcnRzVXBkYXRlT25TZWNvbmRhcnlUaHJlYWQoKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gaXNDdXJyZW50
bHlEcmF3aW5nSW50b0xheWVyKGdfaXNDdXJyZW50bHlEcmF3aW5nSW50b0xheWVyLCBjb250ZXh0
LmlzQ0FMYXllckNvbnRleHQoKSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNDdXJyZW50bHlE
cmF3aW5nSW50b0xheWVyKGdfaXNDdXJyZW50bHlEcmF3aW5nSW50b0xheWVyLCBjb250ZXh0Lmlz
Q0FMYXllckNvbnRleHQoKSk7CiAgICAgCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBz
dGF0ZVNhdmVyKGNvbnRleHQpOwogICAgIGNvbnRleHQuY2xpcChkYW1hZ2VSZWN0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGZlNjgxZDhiMjFkZmQwYTA4
YWM3ZGRhYzNiM2JlYmJlOGIzNmU0Y2MuLjg1MWEwNDc0ZTg0YzcxNTE5YmNkYjIzYzEzY2U5OWJj
YWExOTQwYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAt
NzMsOCArNzMsOCBAQAogCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0YWNrU3RhdHMuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXVEY7CiB1c2luZyBuYW1lc3BhY2UgVW5pY29kZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCmluZGV4IGI5NTkzM2Zl
MDE5MmVlMjZkMzYxN2I2YjNhZWY0ZWFhZDZhZTFjNjcuLmZjN2I4MThiMjRmYjkxMTUyMTQwYWFm
M2MxMDQ5NzQ0MGFhODQwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHZW9tZXRyeU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdlb21ldHJ5TWFwLmNwcApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgi
Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JT
Y29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCBGbG9h
dFF1YWQgUmVuZGVyR2VvbWV0cnlNYXA6Om1hcFRvQ29udGFpbmVyKGNvbnN0IEZsb2F0UmVjdCYg
cmVjdCwgY29uc3QgUmVuZGVyTAogdm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6cHVzaE1hcHBpbmdz
VG9BbmNlc3Rvcihjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiBhbmNlc3RvclJlbmRlcmVyKQogewogICAgIC8vIFdlIG5lZWQgdG8gcHVz
aCBtYXBwaW5ncyBpbiByZXZlcnNlIG9yZGVyIGhlcmUsIHNvIGRvIGluc2VydGlvbnMgcmF0aGVy
IHRoYW4gYXBwZW5kcy4KLSAgICBUZW1wb3JhcnlDaGFuZ2U8c2l6ZV90PiBwb3NpdGlvbkNoYW5n
ZShtX2luc2VydGlvblBvc2l0aW9uLCBtX21hcHBpbmcuc2l6ZSgpKTsKKyAgICBTZXRGb3JTY29w
ZTxzaXplX3Q+IHBvc2l0aW9uQ2hhbmdlKG1faW5zZXJ0aW9uUG9zaXRpb24sIG1fbWFwcGluZy5z
aXplKCkpOwogICAgIGRvIHsKICAgICAgICAgcmVuZGVyZXIgPSByZW5kZXJlci0+cHVzaE1hcHBp
bmdUb0NvbnRhaW5lcihhbmNlc3RvclJlbmRlcmVyLCAqdGhpcyk7CiAgICAgfSB3aGlsZSAocmVu
ZGVyZXIgJiYgcmVuZGVyZXIgIT0gYW5jZXN0b3JSZW5kZXJlcik7CkBAIC0xNzUsNyArMTc1LDcg
QEAgc3RhdGljIGJvb2wgY2FuTWFwQmV0d2VlblJlbmRlcmVyc1ZpYUxheWVycyhjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0JiByZW5kZXIKIHZvaWQgUmVuZGVyR2VvbWV0cnlNYXA6OnB1c2hN
YXBwaW5nc1RvQW5jZXN0b3IoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBSZW5kZXJM
YXllciogYW5jZXN0b3JMYXllciwgYm9vbCByZXNwZWN0VHJhbnNmb3JtcykKIHsKICAgICBNYXBD
b29yZGluYXRlc0ZsYWdzIG5ld0ZsYWdzID0gcmVzcGVjdFRyYW5zZm9ybXMgPyBtX21hcENvb3Jk
aW5hdGVzRmxhZ3MgOiBtX21hcENvb3JkaW5hdGVzRmxhZ3MgJiB+VXNlVHJhbnNmb3JtczsKLSAg
ICBUZW1wb3JhcnlDaGFuZ2U8TWFwQ29vcmRpbmF0ZXNGbGFncz4gZmxhZ3NDaGFuZ2UobV9tYXBD
b29yZGluYXRlc0ZsYWdzLCBuZXdGbGFncyk7CisgICAgU2V0Rm9yU2NvcGU8TWFwQ29vcmRpbmF0
ZXNGbGFncz4gZmxhZ3NDaGFuZ2UobV9tYXBDb29yZGluYXRlc0ZsYWdzLCBuZXdGbGFncyk7CiAK
ICAgICBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0JiByZW5kZXJlciA9IGxheWVyLT5yZW5k
ZXJlcigpOwogCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6cHVz
aE1hcHBpbmdzVG9BbmNlc3Rvcihjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IFIKICAg
ICAgICAgICAgIHB1c2hNYXBwaW5nc1RvQW5jZXN0b3IoJmFuY2VzdG9yTGF5ZXItPnJlbmRlcmVy
KCksIG51bGxwdHIpOwogICAgICAgICB9CiAKLSAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPHNpemVf
dD4gcG9zaXRpb25DaGFuZ2UobV9pbnNlcnRpb25Qb3NpdGlvbiwgbV9tYXBwaW5nLnNpemUoKSk7
CisgICAgICAgIFNldEZvclNjb3BlPHNpemVfdD4gcG9zaXRpb25DaGFuZ2UobV9pbnNlcnRpb25Q
b3NpdGlvbiwgbV9tYXBwaW5nLnNpemUoKSk7CiAgICAgICAgIHB1c2goJnJlbmRlcmVyLCBsYXll
ck9mZnNldCwgLyphY2N1bXVsYXRpbmdUcmFuc2Zvcm0qLyB0cnVlLCAvKmlzTm9uVW5pZm9ybSov
IGZhbHNlLCAvKmlzRml4ZWRQb3NpdGlvbiovIGZhbHNlLCAvKmhhc1RyYW5zZm9ybSovIGZhbHNl
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCmluZGV4IDk0ZWM2NzNjNDcyNzNmZTZkM2M0N2ZlZDExZmFmOTg5M2VkMjU2ZWMu
LjViYmNjMDAzOTA1YWFiOWE2ODc2NWFmN2M3Y2U4MmRlYzYxNzRkY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNTc3LDcgKzU3Nyw3IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zKFJlbmRlckdlb21ldHJ5TWFwKiBnZW9tZXRy
eU1hcCwgVXBkYXRlTGF5CiAgICAgICAgIAogICAgIC8vIFdpdGggYWxsIG91ciBjaGlsZHJlbiBw
b3NpdGlvbmVkLCBub3cgdXBkYXRlIG91ciBtYXJxdWVlIGlmIHdlIG5lZWQgdG8uCiAgICAgaWYg
KG1fbWFycXVlZSkgewotICAgICAgICAvLyBGSVhNRTogd291bGQgbGlrZSB0byB1c2UgVGVtcG9y
YXJ5Q2hhbmdlPD4gYnV0IGl0IGRvZXNuJ3Qgd29yayB3aXRoIGJpdGZpZWxkcy4KKyAgICAgICAg
Ly8gRklYTUU6IHdvdWxkIGxpa2UgdG8gdXNlIFNldEZvclNjb3BlPD4gYnV0IGl0IGRvZXNuJ3Qg
d29yayB3aXRoIGJpdGZpZWxkcy4KICAgICAgICAgYm9vbCBvbGRVcGRhdGluZ01hcnF1ZWVQb3Np
dGlvbiA9IG1fdXBkYXRpbmdNYXJxdWVlUG9zaXRpb247CiAgICAgICAgIG1fdXBkYXRpbmdNYXJx
dWVlUG9zaXRpb24gPSB0cnVlOwogICAgICAgICBtX21hcnF1ZWUtPnVwZGF0ZU1hcnF1ZWVQb3Np
dGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcAppbmRleCA0MGE3MDQyOWQwNTdhNTgxODBlZGIwOGY0NmZjN2ZmZTZhNzIxM2U5
Li5mYzRhMTE2NDBjYmUzZmEwMzQxODliMGNjOTM3NjY5ODU3NmNhMDExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNjMs
NyArNjMsNyBAQAogI2luY2x1ZGUgIlRpbGVkQmFja2luZy5oIgogI2luY2x1ZGUgIlRyYW5zZm9y
bVN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL1Rl
bXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAKQEAgLTY4MCw3ICs2ODAsNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRl
Q29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVUeXBlIHVwZGF0ZQogCiAgICAgQW5p
bWF0aW9uVXBkYXRlQmxvY2sgYW5pbWF0aW9uVXBkYXRlQmxvY2soJm1fcmVuZGVyVmlldy5mcmFt
ZVZpZXcoKS5mcmFtZSgpLmFuaW1hdGlvbigpKTsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29s
PiBwb3N0TGF5b3V0Q2hhbmdlKG1faW5Qb3N0TGF5b3V0VXBkYXRlLCB0cnVlKTsKKyAgICBTZXRG
b3JTY29wZTxib29sPiBwb3N0TGF5b3V0Q2hhbmdlKG1faW5Qb3N0TGF5b3V0VXBkYXRlLCB0cnVl
KTsKICAgICAKICAgICBib29sIGNoZWNrRm9ySGllcmFyY2h5VXBkYXRlID0gbV9yZWV2YWx1YXRl
Q29tcG9zaXRpbmdBZnRlckxheW91dDsKICAgICBib29sIG5lZWRHZW9tZXRyeVVwZGF0ZSA9IGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IGRkMTBmYjM1
ZTg4YmE2N2VlNmY2NTI3MjllNTlkMzg3M2I0MTc3YWEuLjgxMzBkMmU4MjA2YjBjMDQxNmRkZDlh
ZjFiZTQxZDQyNjQxNWIzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKQEAgLTUxLDggKzUxLDggQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0
eWxlSW5oZXJpdGVkRGF0YS5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5jbHVk
ZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KLSNpbmNs
dWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MTg2LDcgKzE4Niw3IEBAIGJvb2wgUmVuZGVyVmlldzo6aGl0VGVzdChjb25zdCBIaXRUZXN0UmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsCiAgICAgZG9jdW1lbnQoKS51
cGRhdGVMYXlvdXQoKTsKICAgICAKICNpZiAhQVNTRVJUX0RJU0FCTEVECi0gICAgVGVtcG9yYXJ5
Q2hhbmdlPGJvb2w+IGhpdFRlc3RSZXN0b3JlciB7IG1faW5IaXRUZXN0aW5nLCB0cnVlIH07Cisg
ICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaGl0VGVzdFJlc3RvcmVyIHsgbV9pbkhpdFRlc3RpbmcsIHRy
dWUgfTsKICNlbmRpZgogCiAgICAgRnJhbWVGbGF0dGVuaW5nTGF5b3V0RGlzYWxsb3dlciBkaXNh
bGxvd2VyKGZyYW1lVmlldygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9F
dmVudExvb3BJbnB1dERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L0V2ZW50
TG9vcElucHV0RGlzcGF0Y2hlci5jcHAKaW5kZXggY2Q4YjkzYzMwZTYyYjQ3YWEzYTM5ODA3YTg4
ZjRkODFhOTYxY2M5OS4uNTEwMjkzZmMxNmM2NGFjOWI1ZmI1MWU3Yjk4ZDA5MGQ4YjUxMzY2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L0V2ZW50TG9vcElucHV0RGlzcGF0Y2hl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L0V2ZW50TG9vcElucHV0RGlzcGF0Y2hl
ci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVw
bGF5aW5nSW5wdXRDdXJzb3IuaCIKICNpbmNsdWRlICJXZWJSZXBsYXlJbnB1dHMuaCIKLSNpbmNs
dWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+
CiAKICNpZiAhTE9HX0RJU0FCTEVECiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtMTQ1LDcgKzE0
NSw3IEBAIHZvaWQgRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyOjpkaXNwYXRjaElucHV0KCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hh
bmdlKG1fZGlzcGF0Y2hpbmcsIHRydWUpOworICAgICAgICBTZXRGb3JTY29wZTxib29sPiBjaGFu
Z2UobV9kaXNwYXRjaGluZywgdHJ1ZSk7CiAgICAgICAgIG1fY3VycmVudFdvcmsuaW5wdXQtPmRp
c3BhdGNoKG1fcGFnZS5yZXBsYXlDb250cm9sbGVyKCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZU1hcC5jcHAKaW5kZXggYWU0OGI2MDI0MTQ4ODdmZmIyODhkNjdhZWI2NmY5
NGVlZWQxOWVlOS4uMmY0N2VjZWExNTYwZmEwMjNlZWRmODE1NmU4ZGU3NDAwM2ZlYmMxMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTWFwLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1hcC5oIgogCi0jaW5jbHVkZSA8d3Rm
L1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE0NCw3ICsxNDQsNyBAQCBSZWZQdHI8U3RvcmFnZU1hcD4g
U3RvcmFnZU1hcDo6c2V0SXRlbShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1
ZSwgUwogCiBSZWZQdHI8U3RvcmFnZU1hcD4gU3RvcmFnZU1hcDo6c2V0SXRlbUlnbm9yaW5nUXVv
dGEoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgVGVtcG9y
YXJ5Q2hhbmdlPHVuc2lnbmVkPiBxdW90YVNpemVDaGFuZ2UobV9xdW90YVNpemUsIG5vUXVvdGEp
OworICAgIFNldEZvclNjb3BlPHVuc2lnbmVkPiBxdW90YVNpemVDaGFuZ2UobV9xdW90YVNpemUs
IG5vUXVvdGEpOwogCiAgICAgU3RyaW5nIG9sZFZhbHVlOwogICAgIGJvb2wgcXVvdGFFeGNlcHRp
b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJsZW5kZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVuZGVyLmNwcAppbmRleCBjN2Y5ZDY4N2I5NzJi
ZDVmOTEzMmVkNjIwNGFjZDRiMzZkMGI4MWQ0Li44ZDJmNjM2Y2Y0YjBmOTFhZDYyMjA0MGIzOWFk
MmUxNzI5MWI0YjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJsZW5k
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQmxlbmRlci5jcHAKQEAgLTI0
LDcgKzI0LDcgQEAKICNpbmNsdWRlICJBbmltYXRpb25VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJT
VkdQYXRoU2VnLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFNvdXJjZS5oIgotI2luY2x1ZGUgPHd0Zi9U
ZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0zNDEsNyArMzQxLDcgQEAgc3RhdGljIGlubGluZSBib29sIGlz
U2VnbWVudEVxdWFsKGNvbnN0IFNWR1BhdGhTZWdUeXBlJiBmcm9tVHlwZSwgY29uc3QgU1ZHUGF0
aFMKIAogYm9vbCBTVkdQYXRoQmxlbmRlcjo6YWRkQW5pbWF0ZWRQYXRoKHVuc2lnbmVkIHJlcGVh
dENvdW50KQogewotICAgIFRlbXBvcmFyeUNoYW5nZTx1bnNpZ25lZD4gY2hhbmdlKG1fYWRkVHlw
ZXNDb3VudCwgcmVwZWF0Q291bnQpOworICAgIFNldEZvclNjb3BlPHVuc2lnbmVkPiBjaGFuZ2Uo
bV9hZGRUeXBlc0NvdW50LCByZXBlYXRDb3VudCk7CiAgICAgcmV0dXJuIGJsZW5kQW5pbWF0ZWRQ
YXRoKDApOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYkNvcmVTdXBwb3J0
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggMjdmODM3YmJlNGI4YTlmZDZhZTky
NmIxODg3OTIyOTEwODU0NDA2NS4uMTFiY2UzYmVlMGUwYmExZDcwMmY3MmM2NjQ1M2NjMmEyYmRl
YjdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvU3VicmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5o
PgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQppbmRleCBkYmM3MjkzM2E2ZDI4YjFjMzQ1NmEzYmRiMjk5MjQ1MDRlMWIyOTFlLi4xZTY2MDQy
NjQ3MTdjYWFlNWRhODkwYzJlNzczMmViZGVhN2IyNTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCkBAIC0yMTksOCArMjE5LDggQEAKICNpbXBvcnQgPHd0Zi9SZWZDb3VudGVk
TGVha0NvdW50ZXIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SdW5M
b29wLmg+CisjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KLSNpbXBvcnQgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KICNpbXBvcnQgPHd0Zi9z
cGkvZGFyd2luL2R5bGRTUEkuaD4KIAogI2lmICFQTEFURk9STShJT1MpCkBAIC05NDE2LDcgKzk0
MTYsNyBAQCAtICh2b2lkKXVwZGF0ZVRleHRUb3VjaEJhcgogICAgIGlmIChfcHJpdmF0ZS0+X2lz
VXBkYXRpbmdUZXh0VG91Y2hCYXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRlbXBvcmFyeUNo
YW5nZTxCT09MPiBpc1VwZGF0aW5nVGV4dFRvdWNoQmFyKF9wcml2YXRlLT5faXNVcGRhdGluZ1Rl
eHRUb3VjaEJhciwgWUVTKTsKKyAgICBTZXRGb3JTY29wZTxCT09MPiBpc1VwZGF0aW5nVGV4dFRv
dWNoQmFyKF9wcml2YXRlLT5faXNVcGRhdGluZ1RleHRUb3VjaEJhciwgWUVTKTsKIAogICAgIGlm
ICghX3ByaXZhdGUtPl90ZXh0VG91Y2hCYXJJdGVtQ29udHJvbGxlcikKICAgICAgICAgX3ByaXZh
dGUtPl90ZXh0VG91Y2hCYXJJdGVtQ29udHJvbGxlciA9IGFkb3B0TlMoW1tXZWJUZXh0VG91Y2hC
YXJJdGVtQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhXZWJWaWV3OnNlbGZdKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNw
cAppbmRleCBjN2Y3ZGUzZWNhMGUyYTY2Y2E3NGI1ZTQ2YWZmYmYxZDhhYTRmM2I2Li5kYTlkYjIy
NGVkYzBlYTBjYmQwMDJkYzE3MTJhMGMxODZkMTkzNWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCkBAIC00NCw3
ICs0NCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9IVFRQSGVhZGVyTWFwLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0
Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRG
T1JNKENPQ09BKQpAQCAtMTA3LDcgKzEwNyw3IEBAIGJvb2wgUGx1Z2luQ29udHJvbGxlclByb3h5
Ojppbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYgY3JlYXRpb25QCiAg
ICAgQVNTRVJUKCFtX3BsdWdpbik7CiAKICAgICBBU1NFUlQoIW1faXNJbml0aWFsaXppbmcpOwot
ICAgIG1faXNJbml0aWFsaXppbmcgPSB0cnVlOyAvLyBDYW5ub3QgdXNlIFRlbXBvcmFyeUNoYW5n
ZSBoZXJlLCBiZWNhdXNlIHRoaXMgb2JqZWN0IGNhbiBiZSBkZWxldGVkIGJlZm9yZSB0aGUgZnVu
Y3Rpb24gcmV0dXJucy4KKyAgICBtX2lzSW5pdGlhbGl6aW5nID0gdHJ1ZTsgLy8gQ2Fubm90IHVz
ZSBTZXRGb3JTY29wZSBoZXJlLCBiZWNhdXNlIHRoaXMgb2JqZWN0IGNhbiBiZSBkZWxldGVkIGJl
Zm9yZSB0aGUgZnVuY3Rpb24gcmV0dXJucy4KIAogICAgIG1fcGx1Z2luID0gTmV0c2NhcGVQbHVn
aW46OmNyZWF0ZShQbHVnaW5Qcm9jZXNzOjpzaW5nbGV0b24oKS5uZXRzY2FwZVBsdWdpbk1vZHVs
ZSgpKTsKICAgICBpZiAoIW1fcGx1Z2luKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGRjMzY4N2FlMzljZGMz
ODk0MGNlY2FmMDFkNWE3NDdmYzI2YzBhOTQuLjU0YThlZTY1ZWM1YmRhYjljYzAzNzc1N2I2YTI2
YTkxNTIwZTEzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSAiUGx1
Z2luUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdl
Lmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6c2V0
R2xvYmFsRXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uU3RyaW5nKQogCiB2b2lkIFdl
YlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBUZW1wb3JhcnlDaGFuZ2U8
SVBDOjpDb25uZWN0aW9uKj4gY3VycmVudENvbm5lY3Rpb25DaGFuZ2UoY3VycmVudENvbm5lY3Rp
b24sICZjb25uZWN0aW9uKTsKKyAgICBTZXRGb3JTY29wZTxJUEM6OkNvbm5lY3Rpb24qPiBjdXJy
ZW50Q29ubmVjdGlvbkNoYW5nZShjdXJyZW50Q29ubmVjdGlvbiwgJmNvbm5lY3Rpb24pOwogCiAg
ICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIGRpZFJlY2Vp
dmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CkBAIC0x
NDIsNyArMTQyLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkQKIAogdm9pZCBXZWJQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVy
PiYgcmVwbHlFbmNvZGVyKQogewotICAgIFRlbXBvcmFyeUNoYW5nZTxJUEM6OkNvbm5lY3Rpb24q
PiBjdXJyZW50Q29ubmVjdGlvbkNoYW5nZShjdXJyZW50Q29ubmVjdGlvbiwgJmNvbm5lY3Rpb24p
OworICAgIFNldEZvclNjb3BlPElQQzo6Q29ubmVjdGlvbio+IGN1cnJlbnRDb25uZWN0aW9uQ2hh
bmdlKGN1cnJlbnRDb25uZWN0aW9uLCAmY29ubmVjdGlvbik7CiAKICAgICB1aW50NjRfdCBkZXN0
aW5hdGlvbklEID0gZGVjb2Rlci5kZXN0aW5hdGlvbklEKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RDb2Rlci5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RDb2Rlci5tbQppbmRleCBl
MDY2ZTJmM2FmMGUzZjhjMjk1Nzk1OWZlZTlkODNkM2I4MDJhNzhhLi5lMmIzMGJhOTYzNzYwODg2
ODYxZmJlZGQwYzZiZDY1OWI2ZDJiM2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0NvY29hL1dLUmVtb3RlT2JqZWN0Q29kZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tCkBAIC0zNyw3ICszNyw3IEBA
CiAjaW1wb3J0ICJfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2VJbnRlcm5hbC5oIgogI2ltcG9ydCA8
b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0jaW1wb3J0IDx3dGYv
VGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbXBvcnQg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGNsYXNzTmFt
ZUtleSA9ICIkY2xhc3MiOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIHN0YXRpYyBSZWZQdHI8QVBJOjpE
aWN0aW9uYXJ5PiBjcmVhdGVFbmNvZGVkT2JqZWN0KFdLUmVtb3RlT2JqZWN0RW5jb2RlciAqZW5j
b2RlCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBSZWY8QVBJOjpEaWN0aW9uYXJ5PiBkaWN0
aW9uYXJ5ID0gQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoKTsKLSAgICBUZW1wb3JhcnlDaGFuZ2U8
QVBJOjpEaWN0aW9uYXJ5Kj4gZGljdGlvbmFyeUNoYW5nZShlbmNvZGVyLT5fY3VycmVudERpY3Rp
b25hcnksIGRpY3Rpb25hcnkucHRyKCkpOworICAgIFNldEZvclNjb3BlPEFQSTo6RGljdGlvbmFy
eSo+IGRpY3Rpb25hcnlDaGFuZ2UoZW5jb2Rlci0+X2N1cnJlbnREaWN0aW9uYXJ5LCBkaWN0aW9u
YXJ5LnB0cigpKTsKIAogICAgIGVuY29kZU9iamVjdChlbmNvZGVyLCBvYmplY3QpOwogCkBAIC02
NjcsMTMgKzY2NywxMyBAQCBzdGF0aWMgaWQgZGVjb2RlT2JqZWN0KFdLUmVtb3RlT2JqZWN0RGVj
b2RlciAqZGVjb2RlciwgY29uc3QgQVBJOjpEaWN0aW9uYXJ5KiBkaQogICAgIGlmICghZGljdGlv
bmFyeSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxjb25zdCBB
UEk6OkRpY3Rpb25hcnkqPiBkaWN0aW9uYXJ5Q2hhbmdlKGRlY29kZXItPl9jdXJyZW50RGljdGlv
bmFyeSwgZGljdGlvbmFyeSk7CisgICAgU2V0Rm9yU2NvcGU8Y29uc3QgQVBJOjpEaWN0aW9uYXJ5
Kj4gZGljdGlvbmFyeUNoYW5nZShkZWNvZGVyLT5fY3VycmVudERpY3Rpb25hcnksIGRpY3Rpb25h
cnkpOwogCiAgICAgLy8gSWYgbm8gYWxsb3dlZCBjbGFzc2VzIHdlcmUgbGlzdGVkLCBqdXN0IHVz
ZSB0aGUgY3VycmVudGx5IGFsbG93ZWQgY2xhc3Nlcy4KICAgICBpZiAoYWxsb3dlZENsYXNzZXMu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZGVjb2RlT2JqZWN0KGRlY29kZXIpOwogCi0gICAg
VGVtcG9yYXJ5Q2hhbmdlPGNvbnN0IEhhc2hTZXQ8Q2xhc3M+Kj4gYWxsb3dlZENsYXNzZXNDaGFu
Z2UoZGVjb2Rlci0+X2FsbG93ZWRDbGFzc2VzLCAmYWxsb3dlZENsYXNzZXMpOworICAgIFNldEZv
clNjb3BlPGNvbnN0IEhhc2hTZXQ8Q2xhc3M+Kj4gYWxsb3dlZENsYXNzZXNDaGFuZ2UoZGVjb2Rl
ci0+X2FsbG93ZWRDbGFzc2VzLCAmYWxsb3dlZENsYXNzZXMpOwogICAgIHJldHVybiBkZWNvZGVP
YmplY3QoZGVjb2Rlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMmM0NjI2MDA2MzIwNDk4NTgwN2Y2YjBlMWI0ZGFlNDc2
ODZlYTFkZi4uY2I2NDhjNThiZTIwOTcyZTY4NGRhNGYwZGUxYzU2MTNiN2E1OGRjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTEw
MCw3ICsxMDAsNyBAQAogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3
dGYvT3B0aW9uYWwuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbXBvcnQgPHd0Zi9U
ZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbXBvcnQgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2ltcG9ydCA8
d3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMjE2Myw3
ICsyMTYzLDcgQEAgLSAodm9pZClfa2V5Ym9hcmRDaGFuZ2VkV2l0aEluZm86KE5TRGljdGlvbmFy
eSAqKWtleWJvYXJkSW5mbyBhZGp1c3RTY3JvbGxWaWV3OigKIAogICAgIGlmIChhZGp1c3RTY3Jv
bGxWaWV3KSB7CiAgICAgICAgIENHRmxvYXQgYm90dG9tSW5zZXRCZWZvcmVBZGp1c3RtZW50ID0g
W19zY3JvbGxWaWV3IGNvbnRlbnRJbnNldF0uYm90dG9tOwotICAgICAgICBUZW1wb3JhcnlDaGFu
Z2U8Qk9PTD4gaW5zZXRBZGp1c3RtZW50R3VhcmQoX2N1cnJlbnRseUFkanVzdGluZ1Njcm9sbFZp
ZXdJbnNldHNGb3JLZXlib2FyZCwgWUVTKTsKKyAgICAgICAgU2V0Rm9yU2NvcGU8Qk9PTD4gaW5z
ZXRBZGp1c3RtZW50R3VhcmQoX2N1cnJlbnRseUFkanVzdGluZ1Njcm9sbFZpZXdJbnNldHNGb3JL
ZXlib2FyZCwgWUVTKTsKICAgICAgICAgW19zY3JvbGxWaWV3IF9hZGp1c3RGb3JBdXRvbWF0aWNL
ZXlib2FyZEluZm86a2V5Ym9hcmRJbmZvIGFuaW1hdGVkOllFUyBsYXN0QWRqdXN0bWVudDomX2xh
c3RBZGp1c3RtZW50Rm9yU2Nyb2xsZXJdOwogICAgICAgICBDR0Zsb2F0IGJvdHRvbUluc2V0QWZ0
ZXJBZGp1c3RtZW50ID0gW19zY3JvbGxWaWV3IGNvbnRlbnRJbnNldF0uYm90dG9tOwogICAgICAg
ICBpZiAoYm90dG9tSW5zZXRCZWZvcmVBZGp1c3RtZW50ICE9IGJvdHRvbUluc2V0QWZ0ZXJBZGp1
c3RtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
CmluZGV4IDQxNTU5YzFlNjllMzBjMjU2YjJlY2U0N2RlNTY1ODk1Y2IyMGUwYjUuLjgyMDJlMzJh
ODFkNDgzMGZmZTlkZjlmNWI2Y2U3NWIyM2JhN2FhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTk3LDcgKzk3LDcgQEAKICNpbXBvcnQg
PFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2ltcG9ydCA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgor
I2ltcG9ydCA8d3RmL1NldEZvclNjb3BlLmg+CiAKICNpZiBIQVZFKFRPVUNIX0JBUikgJiYgRU5B
QkxFKFdFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSKQogU09GVF9MSU5LX0ZSQU1FV09SSyhB
VktpdCkKQEAgLTk4Niw3ICs5ODYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVUZXh0VG91
Y2hCYXIoKQogICAgIGlmIChtX2lzVXBkYXRpbmdUZXh0VG91Y2hCYXIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBpc1VwZGF0aW5nVGV4dEZ1bmN0aW9uQmFy
KG1faXNVcGRhdGluZ1RleHRUb3VjaEJhciwgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4g
aXNVcGRhdGluZ1RleHRGdW5jdGlvbkJhcihtX2lzVXBkYXRpbmdUZXh0VG91Y2hCYXIsIHRydWUp
OwogCiAgICAgaWYgKCFtX3RleHRUb3VjaEJhckl0ZW1Db250cm9sbGVyKQogICAgICAgICBtX3Rl
eHRUb3VjaEJhckl0ZW1Db250cm9sbGVyID0gYWRvcHROUyhbW1dLVGV4dFRvdWNoQmFySXRlbUNv
bnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoV2ViVmlld0ltcGw6dGhpc10pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0KaW5kZXggOGMw
ZjE0NmRhNWE0MzY0Zjc2ZmI1NjgxNzAxYmNmZjZhNWVjMTUwYi4uYzU1MWNlODYzNmNlMjE0ZDhh
YzI1NTg0Mjg5N2FhMmE3MWQ1YTNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tCkBAIC0zNSw3ICszNSw3IEBACiAjaW1wb3J0
IDxVSUtpdC9VSVBhbkdlc3R1cmVSZWNvZ25pemVyLmg+CiAjaW1wb3J0IDxVSUtpdC9VSVNjcm9s
bFZpZXcuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+Ci0jaW1wb3J0IDx3
dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogI2lm
IEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAjaW1wb3J0IDxXZWJDb3JlL0F4aXNTY3JvbGxTbmFw
T2Zmc2V0cy5oPgpAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZUlPUzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sCiB7
CiAgICAgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRl
ckNoaWxkcmVuKHN0YXRlTm9kZSk7CiAKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gdXBkYXRp
bmdDaGFuZ2UobV91cGRhdGluZ0Zyb21TdGF0ZU5vZGUsIHRydWUpOworICAgIFNldEZvclNjb3Bl
PGJvb2w+IHVwZGF0aW5nQ2hhbmdlKG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlLCB0cnVlKTsKIAog
ICAgIGNvbnN0IGF1dG8mIHNjcm9sbGluZ1N0YXRlTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1N0
YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlPihzdGF0ZU5vZGUpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBhc3RlYm9hcmRQcm94eUd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBhc3RlYm9hcmRQcm94eUd0ay5jcHAKaW5kZXgg
YjhjOWY3YmRmZjVjZDNmZmNhMjhkMmQzNWRmNTE3M2U4ODdkMzFlNi4uMWIxNTg2OWJkYjFkN2Yy
MjU0MDQwMTkyNTRiNmFhOGFlOWFiZTJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2d0ay9XZWJQYXN0ZWJvYXJkUHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9ndGsvV2ViUGFzdGVib2FyZFByb3h5R3RrLmNwcApAQCAtMjksNyArMjksNyBA
QAogI2luY2x1ZGUgIldlYkZyYW1lUHJveHkuaCIKICNpbmNsdWRlICJXZWJTZWxlY3Rpb25EYXRh
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KLSNpbmNsdWRlIDx3
dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogCiB2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6d3JpdGVUb0NsaXBib2FyZChjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBXZWJTZWxlY3Rpb25EYXRhJiBzZWxlY3Rpb24p
CiB7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPFdlYkZyYW1lUHJveHkqPiBmcmFtZVdyaXRpbmdUb0Ns
aXBib2FyZChtX2ZyYW1lV3JpdGluZ1RvQ2xpcGJvYXJkLCBtX3ByaW1hcnlTZWxlY3Rpb25Pd25l
cik7CisgICAgU2V0Rm9yU2NvcGU8V2ViRnJhbWVQcm94eSo+IGZyYW1lV3JpdGluZ1RvQ2xpcGJv
YXJkKG1fZnJhbWVXcml0aW5nVG9DbGlwYm9hcmQsIG1fcHJpbWFyeVNlbGVjdGlvbk93bmVyKTsK
ICAgICBQbGF0Zm9ybVBhc3RlYm9hcmQocGFzdGVib2FyZE5hbWUpLndyaXRlVG9DbGlwYm9hcmQo
c2VsZWN0aW9uLnNlbGVjdGlvbkRhdGEsIFt0aGlzXSB7CiAgICAgICAgIGlmIChtX2ZyYW1lV3Jp
dGluZ1RvQ2xpcGJvYXJkID09IG1fcHJpbWFyeVNlbGVjdGlvbk93bmVyKQogICAgICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nv
b3JkaW5hdG9yLmNwcAppbmRleCA3MzViN2YxOWE2YjUyNTZhMTljZDg4NWZlMTQxNzk2MzBkNjNi
YmU4Li4wMGQ3NzZmZjMwN2QxNjFlNGExNzYzYjNmMDk4YzBkZmYwNjg3Njc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcApA
QCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yQ29udHJvbGxlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
Lmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRG
b3JTY29wZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtOTksNyArOTksNyBA
QCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnNpemVEaWRDaGFuZ2UoY29uc3QgSW50U2l6
ZSYgbmV3U2l6ZSkKIAogYm9vbCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpmbHVzaFBlbmRpbmdM
YXllckNoYW5nZXMoKQogewotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBwcm90ZWN0b3IobV9p
c0ZsdXNoaW5nTGF5ZXJDaGFuZ2VzLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBwcm90
ZWN0b3IobV9pc0ZsdXNoaW5nTGF5ZXJDaGFuZ2VzLCB0cnVlKTsKIAogICAgIGluaXRpYWxpemVS
b290Q29tcG9zaXRpbmdMYXllcklmTmVlZGVkKCk7CiAKQEAgLTM3Myw3ICszNzMsNyBAQCB2b2lk
IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnJlbmRlck5leHRGcmFtZSgpCiAKIHZvaWQgQ29tcG9z
aXRpbmdDb29yZGluYXRvcjo6cHVyZ2VCYWNraW5nU3RvcmVzKCkKIHsKLSAgICBUZW1wb3JhcnlD
aGFuZ2U8Ym9vbD4gcHVyZ2luZ1RvZ2dsZShtX2lzUHVyZ2luZywgdHJ1ZSk7CisgICAgU2V0Rm9y
U2NvcGU8Ym9vbD4gcHVyZ2luZ1RvZ2dsZShtX2lzUHVyZ2luZywgdHJ1ZSk7CiAKICAgICBmb3Ig
KGF1dG8mIHJlZ2lzdGVyZWRMYXllciA6IG1fcmVnaXN0ZXJlZExheWVycy52YWx1ZXMoKSkKICAg
ICAgICAgcmVnaXN0ZXJlZExheWVyLT5wdXJnZUJhY2tpbmdTdG9yZXMoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAxZjZlNjg5NTliYjcy
NGE4NGZjNzQxMmQwMDM2YzA5ODc2ZDUxZDBhLi4zNDdmMWQ0ZTgyMjJkOWNkNmM3NDRhYzgzYWNm
YThjMjM3YjM0ZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC0xODUsNyArMTg1LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oPgogI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0
Zi9TZXRGb3JTY29wZS5oPgogCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogI2luY2x1ZGUg
IkRhdGFEZXRlY3Rpb25SZXN1bHQuaCIKQEAgLTIyMzgsNyArMjIzOCw3IEBAIHN0YXRpYyBib29s
IGhhbmRsZU1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgbW91c2VFdmVudCwgV2ViUGFn
ZSogcGFnZSwgYm9vCiAKIHZvaWQgV2ViUGFnZTo6bW91c2VFdmVudChjb25zdCBXZWJNb3VzZUV2
ZW50JiBtb3VzZUV2ZW50KQogewotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiB1c2VySXNJbnRl
cmFjdGluZ0NoYW5nZSB7IG1fdXNlcklzSW50ZXJhY3RpbmcsIHRydWUgfTsKKyAgICBTZXRGb3JT
Y29wZTxib29sPiB1c2VySXNJbnRlcmFjdGluZ0NoYW5nZSB7IG1fdXNlcklzSW50ZXJhY3Rpbmcs
IHRydWUgfTsKIAogICAgIG1fdXNlckFjdGl2aXR5SHlzdGVyZXNpcy5pbXB1bHNlKCk7CiAKQEAg
LTIzMTYsNyArMjMxNiw3IEBAIHN0YXRpYyBib29sIGhhbmRsZUtleUV2ZW50KGNvbnN0IFdlYktl
eWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQsIFBhZ2UqIHBhZ2UpCiAKIHZvaWQgV2ViUGFnZTo6
a2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVudCkKIHsKLSAgICBU
ZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gdXNlcklzSW50ZXJhY3RpbmdDaGFuZ2UgeyBtX3VzZXJJc0lu
dGVyYWN0aW5nLCB0cnVlIH07CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gdXNlcklzSW50ZXJhY3Rp
bmdDaGFuZ2UgeyBtX3VzZXJJc0ludGVyYWN0aW5nLCB0cnVlIH07CiAKICAgICBtX3VzZXJBY3Rp
dml0eUh5c3RlcmVzaXMuaW1wdWxzZSgpOwogCkBAIC0yMzc4LDcgKzIzNzgsNyBAQCBzdGF0aWMg
Ym9vbCBoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQsIFBh
Z2UqIHBhZ2UpCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiB2b2lkIFdlYlBhZ2U6OmRp
c3BhdGNoVG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBib29sJiBo
YW5kbGVkKQogewotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiB1c2VySXNJbnRlcmFjdGluZ0No
YW5nZSB7IG1fdXNlcklzSW50ZXJhY3RpbmcsIHRydWUgfTsKKyAgICBTZXRGb3JTY29wZTxib29s
PiB1c2VySXNJbnRlcmFjdGluZ0NoYW5nZSB7IG1fdXNlcklzSW50ZXJhY3RpbmcsIHRydWUgfTsK
IAogICAgIG1fbGFzdEludGVyYWN0aW9uTG9jYXRpb24gPSB0b3VjaEV2ZW50LnBvc2l0aW9uKCk7
CiAgICAgQ3VycmVudEV2ZW50IGN1cnJlbnRFdmVudCh0b3VjaEV2ZW50KTsKQEAgLTI1MzksNyAr
MjUzOSw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0SW5pdGlhbEZvY3VzKGJvb2wgZm9yd2FyZCwgYm9v
bCBpc0tleWJvYXJkRXZlbnRWYWxpZCwgY29uc3QgV2ViCiAgICAgaWYgKCFtX3BhZ2UpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiB1c2VySXNJbnRlcmFjdGlu
Z0NoYW5nZSB7IG1fdXNlcklzSW50ZXJhY3RpbmcsIHRydWUgfTsKKyAgICBTZXRGb3JTY29wZTxi
b29sPiB1c2VySXNJbnRlcmFjdGluZ0NoYW5nZSB7IG1fdXNlcklzSW50ZXJhY3RpbmcsIHRydWUg
fTsKIAogICAgIEZyYW1lJiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNl
ZE9yTWFpbkZyYW1lKCk7CiAgICAgZnJhbWUuZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQo
MCk7CkBAIC00NjQyLDcgKzQ2NDIsNyBAQCB2b2lkIFdlYlBhZ2U6Omluc2VydFRleHRBc3luYyhj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbgogICAgIGlm
IChyZXBsYWNlbWVudEVkaXRpbmdSYW5nZS5sb2NhdGlvbiAhPSBub3RGb3VuZCkgewogICAgICAg
ICBSZWZQdHI8UmFuZ2U+IHJlcGxhY2VtZW50UmFuZ2UgPSByYW5nZUZyb21FZGl0aW5nUmFuZ2Uo
ZnJhbWUsIHJlcGxhY2VtZW50RWRpdGluZ1JhbmdlLCBzdGF0aWNfY2FzdDxFZGl0aW5nUmFuZ2VJ
c1JlbGF0aXZlVG8+KGVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbykpOwogICAgICAgICBpZiAocmVw
bGFjZW1lbnRSYW5nZSkgewotICAgICAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGlzU2Vs
ZWN0aW5nVGV4dFdoaWxlSW5zZXJ0aW5nQXN5bmNocm9ub3VzbHkobV9pc1NlbGVjdGluZ1RleHRX
aGlsZUluc2VydGluZ0FzeW5jaHJvbm91c2x5LCBzdXBwcmVzc1NlbGVjdGlvblVwZGF0ZSk7Cisg
ICAgICAgICAgICBTZXRGb3JTY29wZTxib29sPiBpc1NlbGVjdGluZ1RleHRXaGlsZUluc2VydGlu
Z0FzeW5jaHJvbm91c2x5KG1faXNTZWxlY3RpbmdUZXh0V2hpbGVJbnNlcnRpbmdBc3luY2hyb25v
dXNseSwgc3VwcHJlc3NTZWxlY3Rpb25VcGRhdGUpOwogICAgICAgICAgICAgZnJhbWUuc2VsZWN0
aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oKnJlcGxhY2VtZW50UmFuZ2UsIFNF
TF9ERUZBVUxUX0FGRklOSVRZKSk7CiAgICAgICAgICAgICByZXBsYWNlc1RleHQgPSB0cnVlOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KaW5kZXggYTAxZmEwNGY1ODBjZmE5NDA0YzI0Y2M3ZDc5OTcyZGJhMGE1
Y2Q3Zi4uMTVhMmM5YzI5NGJlOWNiNGI2MWJiZDE4Y2JjYzcyMDMwOGQ5NWY5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpA
QCAtMTAzLDcgKzEwMyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dLQ29udGVudE9ic2VydmF0aW9u
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50Lmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJh
cy5oPgotI2ltcG9ydCA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2ltcG9ydCA8d3RmL1NldEZv
clNjb3BlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yNjg3LDcgKzI2ODcs
NyBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0VGV4dEF1dG9zaXppbmcoKQogCiB2b2lkIFdlYlBhZ2U6
OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0
U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVu
b2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGRvdWJsZSB0YXJnZXRTY2FsZSwg
aW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgdWludDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6ZVVw
ZGF0ZUlEKQogewotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBkeW5hbWljU2l6ZVVwZGF0ZUd1
YXJkKG1faW5EeW5hbWljU2l6ZVVwZGF0ZSwgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4g
ZHluYW1pY1NpemVVcGRhdGVHdWFyZChtX2luRHluYW1pY1NpemVVcGRhdGUsIHRydWUpOwogICAg
IC8vIEZJWE1FOiB0aGlzIGRvZXMgbm90IGhhbmRsZSB0aGUgY2FzZXMgd2hlcmUgdGhlIGNvbnRl
bnQgd291bGQgY2hhbmdlIHRoZSBjb250ZW50IHNpemUgb3Igc2Nyb2xsIHBvc2l0aW9uIGZyb20g
SmF2YVNjcmlwdC4KICAgICAvLyBUbyBoYW5kbGUgdGhvc2UgY2FzZXMsIHdlIHdvdWxkIG5lZWQg
dG8gcmVkbyB0aGlzIGNvbXB1dGF0aW9uIG9uIGV2ZXJ5IGNoYW5nZSB1bnRpbCB0aGUgbmV4dCB2
aXNpYmxlIGNvbnRlbnQgcmVjdCB1cGRhdGUuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5t
bQppbmRleCBlOGUxNGE5MGIzYTllNmU3NTE1ODQ2NjkyYjY4NjdkMzdiZTU3MGI2Li5mNGE2MWEw
YWQ3OWVhZGQ3ZTA3Njk1ZDY4NGRjODQ3MzRkNTNiODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVD
b250ZXh0Lm1tCkBAIC0zNSw4ICszNSw4IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVmlldy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9NYWluRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5o
PgorI2ltcG9ydCA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW1wb3J0IDx3dGYvU3lzdGVtVHJhY2lu
Zy5oPgotI2ltcG9ydCA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XZWJQYWdlTWFjLm1tCmluZGV4IGEyYTBiZjQ0OTgxY2ZkMjYxNjk5MTE3ZjZhZWM4YzZmMDJl
Y2M1OTMuLmNlNjY1MDZhZjRkM2MxYWNkZWI5YTMzMWUyNGMwZWFkMWVkMTdkMDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0K
QEAgLTkwLDcgKzkwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2luZG93c0tleWJvYXJkQ29kZXMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvaHRtbGVkaXRpbmcuaD4KICNpbXBvcnQgPFdlYktpdFN5c3Rl
bUludGVyZmFjZS5oPgotI2ltcG9ydCA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2ltcG9ydCA8
d3RmL1NldEZvclNjb3BlLmg+CiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KQogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldE1hYy5oPgpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk5NDg0ODM2ZjUzOWMy
Mjg1Yjg3N2FjYTBlMWRlMzMyMjgyNGFlMzEuLjQ0YTVkMjhlNWZjMDk4OWE5ZWQzNWRjZDVkYjJk
YzZlNjNmOWU2NDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNi0xMS0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBXVEY6OlRlbXBvcmFyeUNoYW5nZSB3
aXRoIFdURjo6U2V0Rm9yU2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NDc2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TZXRGb3JTY29wZS5jcHA6IFJlbmFtZWQg
ZnJvbSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UZW1wb3JhcnlDaGFuZ2UuY3BwLgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNl
dFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKwogMjAxNi0xMS0xNiAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjA4NDU1KTogTGF5
b3V0VGVzdHMgc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwgYW5kIHN3aXBl
L21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sIGFyZSBmYWlsaW5nCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9DTWFrZUxpc3RzLnR4dAppbmRleCA4OTdiMGVkZmMyZDI0NGJkNTM5NTcyYWQyMjQ1MDdj
MDA1MDg4NzE0Li44NmM0MDQ2MjVmNzkyZDVhMzQ5ZGJmYjA2NjdmOGY4YWRiNmFlMzk2IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKQEAgLTc5LDcgKzc5LDcgQEAgc2V0KFRlc3RXVEZf
U09VUkNFUwogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNw
cAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3Bw
CiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCi0gICAg
JHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1RlbXBvcmFyeUNoYW5nZS5jcHAKKyAgICAk
e1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvU2V0Rm9yU2NvcGUuY3BwCiAgICAgJHtURVNU
V0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1RpbWUuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJ
Un0vVGVzdHMvV1RGL1VuaXF1ZVJlZi5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0
cy9XVEYvVmFyaWFudC5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWNhNzE2ZmViZjk4
NzNhZjI5NWQyOThkYzkyMDdlY2ExMTliMmJmZi4uNTRlN2U4YThjMzFhMzdiMWFlZWM0NjlhYmY0
N2NmZjVjZTY5ZDI1NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyNiw3ICsyMjYsNyBA
QAogCQk3QzgzREYzNzFEMEE1OTBDMDBGRUJDRjMgLyogU3RyaW5nSW1wbC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkYxQjQ0MzE1Q0E0MzRGMDBE
MUU0QkYgLyogU3RyaW5nSW1wbC5jcHAgKi87IH07CiAJCTdDODNERjM4MUQwQTU5MEMwMEZFQkNG
MyAvKiBTdHJpbmdPcGVyYXRvcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzAxMzYzQzcxM0MzOTk3MzAwRUYzOTY0IC8qIFN0cmluZ09wZXJhdG9y
cy5jcHAgKi87IH07CiAJCTdDODNERjNBMUQwQTU5MEMwMEZFQkNGMyAvKiBTdHJpbmdWaWV3LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzRENDJE
MTg4MjI4RjMwMEU1RUQ1NyAvKiBTdHJpbmdWaWV3LmNwcCAqLzsgfTsKLQkJN0M4M0RGM0QxRDBB
NTkwQzAwRkVCQ0YzIC8qIFRlbXBvcmFyeUNoYW5nZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQkNEODU2OTE0ODVDOThCMDBFQTIwMDMgLyogVGVt
cG9yYXJ5Q2hhbmdlLmNwcCAqLzsgfTsKKwkJN0M4M0RGM0QxRDBBNTkwQzAwRkVCQ0YzIC8qIFNl
dEZvclNjb3BlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBCQ0Q4NTY5MTQ4NUM5OEIwMEVBMjAwMyAvKiBTZXRGb3JTY29wZS5jcHAgKi87IH07CiAJ
CTdDODNERjQwMUQwQTU5MEMwMEZFQkNGMyAvKiBUZXN0c0NvbnRyb2xsZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMzFBQTgxMTcxMzFGQzAw
QjY5NzI3IC8qIFRlc3RzQ29udHJvbGxlci5jcHAgKi87IH07CiAJCTdDODNERjRDMUQwQTU5MEMw
MEZFQkNGMyAvKiBWZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM1NUY1RjgxNEFENzhFRTAwNDg0QkUxIC8qIFZlY3Rvci5jcHAgKi87IH07
CiAJCTdDODNERjU5MUQwQTU5MEMwMEZFQkNGMyAvKiBQYXJraW5nTG90LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRTQ0Nzk3MUI3NkYxRTMwMDk0
OThFQiAvKiBQYXJraW5nTG90LmNwcCAqLzsgfTsKQEAgLTczMSw3ICs3MzEsNyBAQAogCQkwMENE
OUY2MjE1QkUzMTJDMDAyREEyQ0UgLyogQmFja0ZvcndhcmRMaXN0Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmFja0ZvcndhcmRMaXN0Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwNzY2REQxRjFBNUFENTIwMDAyM0UzQkIgLyogUGVuZGluZ0FQ
SVJlcXVlc3RVUkwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVu
ZGluZ0FQSVJlcXVlc3RVUkwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwQkNE
ODMzNDE0ODU3Q0U0MDBFQTIwMDMgLyogSGFzaE1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBIYXNoTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMEJDRDg1NjkxNDg1Qzk4QjAwRUEyMDAzIC8qIFRlbXBvcmFyeUNoYW5nZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZW1wb3JhcnlDaGFuZ2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwQkNEODU2OTE0ODVDOThCMDBFQTIwMDMgLyogU2V0
Rm9yU2NvcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2V0Rm9y
U2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjEzOUU3MjFBNDIzQTJC
MDBGNTkwRjUgLyogUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFBsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW07IHBhdGggPSBj
b2NvYS9QbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjEzOUU3NTFBNDIzQTUzMDBGNTkwRjUgLyogV2Vha09iakNQdHIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWFrT2JqQ1B0ci5tbTsgcGF0aCA9IGNv
Y29hL1dlYWtPYmpDUHRyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE3QkJE
NDE1QUY2QzREMDA3QUI3NTMgLyogV2ViQ29yZVN0YXRpc3RpY3NXaXRoTm9XZWJQcm9jZXNzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVTdGF0aXN0aWNz
V2l0aE5vV2ViUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODQ4
LDcgKzE4NDgsNyBAQAogCQkJCUMwMTM2M0M3MTNDMzk5NzMwMEVGMzk2NCAvKiBTdHJpbmdPcGVy
YXRvcnMuY3BwICovLAogCQkJCTdDNzRENDJEMTg4MjI4RjMwMEU1RUQ1NyAvKiBTdHJpbmdWaWV3
LmNwcCAqLywKIAkJCQk1NTk3RjgzNDFEOTU5NkM4MDA2NkJDMjEgLyogU3luY2hyb25pemVkRml4
ZWRRdWV1ZS5jcHAgKi8sCi0JCQkJMEJDRDg1NjkxNDg1Qzk4QjAwRUEyMDAzIC8qIFRlbXBvcmFy
eUNoYW5nZS5jcHAgKi8sCisJCQkJMEJDRDg1NjkxNDg1Qzk4QjAwRUEyMDAzIC8qIFNldEZvclNj
b3BlLmNwcCAqLywKIAkJCQkwRjJDMjBCNzFEQ0Q1NDQ4MDA1NDJEOUUgLyogVGltZS5jcHAgKi8s
CiAJCQkJNUM1RTYzM0QxRDBCNjc5NDAwODVBMDI1IC8qIFVuaXF1ZVJlZi5jcHAgKi8sCiAJCQkJ
N0NEMEQ1QUExRDU1MzRERTAwMENDOUUxIC8qIFZhcmlhbnQuY3BwICovLApAQCAtMjM1Myw3ICsy
MzUzLDcgQEAKIAkJCQk3QzgzREYzODFEMEE1OTBDMDBGRUJDRjMgLyogU3RyaW5nT3BlcmF0b3Jz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU1OTdGODM2MUQ5NTk2QzgwMDY2QkMyMSAvKiBTeW5j
aHJvbml6ZWRGaXhlZFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNERjNBMUQwQTU5
MEMwMEZFQkNGMyAvKiBTdHJpbmdWaWV3LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTdDODNERjNE
MUQwQTU5MEMwMEZFQkNGMyAvKiBUZW1wb3JhcnlDaGFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJN0M4M0RGM0QxRDBBNTkwQzAwRkVCQ0YzIC8qIFNldEZvclNjb3BlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDODNERjQwMUQwQTU5MEMwMEZFQkNGMyAvKiBUZXN0c0NvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwM0IxRDBBNjAyNzAwRkVCQ0YzIC8qIFV0aWxpdGll
c0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0ZDNzExRDU1MzVBODAwMURGQkNEIC8q
IFZhcmlhbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TZXRGb3JTY29wZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TZXRGb3JTY29wZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJlMzQ5NGQ2MTE0NGY5NjhhNGJjMjJj
MTk2ZjhhMzQ3ODk5YTY3ZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1NldEZvclNjb3BlLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgorCitu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoV1RGLCBTZXRGb3JTY29wZU5lc3RlZCkK
K3sKKyAgICBib29sIG9yaWdpbmFsbHlGYWxzZSA9IGZhbHNlOworICAgIHsKKyAgICAgICAgU2V0
Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlMU9yaWdpbmFsbHlGYWxzZShvcmlnaW5hbGx5RmFsc2UsIHRy
dWUpOworICAgICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbGx5RmFsc2UpOworICAgICAgICB7Cisg
ICAgICAgICAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UyT3JpZ2luYWxseUZhbHNlKG9yaWdp
bmFsbHlGYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKG9yaWdpbmFsbHlG
YWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWxseUZhbHNlKTsK
KyAgICB9CisgICAgRVhQRUNUX0ZBTFNFKG9yaWdpbmFsbHlGYWxzZSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1RlbXBvcmFyeUNoYW5nZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9UZW1wb3JhcnlDaGFuZ2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYmEw
ZjE1YmQ3OTg4NGY0ZTJiMGQ1YjNkMzUzMmYyY2Q3OWI1YTVhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1RlbXBvcmFyeUNoYW5nZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlD
aGFuZ2UuaD4KLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotCi1URVNUKFdURiwgVGVtcG9y
YXJ5Q2hhbmdlTmVzdGVkKQotewotICAgIGJvb2wgb3JpZ2luYWxseUZhbHNlID0gZmFsc2U7Ci0g
ICAgewotICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hhbmdlMU9yaWdpbmFsbHlGYWxz
ZShvcmlnaW5hbGx5RmFsc2UsIHRydWUpOwotICAgICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbGx5
RmFsc2UpOwotICAgICAgICB7Ci0gICAgICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hh
bmdlMk9yaWdpbmFsbHlGYWxzZShvcmlnaW5hbGx5RmFsc2UsIGZhbHNlKTsKLSAgICAgICAgICAg
IEVYUEVDVF9GQUxTRShvcmlnaW5hbGx5RmFsc2UpOwotICAgICAgICB9Ci0gICAgICAgIEVYUEVD
VF9UUlVFKG9yaWdpbmFsbHlGYWxzZSk7Ci0gICAgfQotICAgIEVYUEVDVF9GQUxTRShvcmlnaW5h
bGx5RmFsc2UpOwotfQotCi19IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDlmMjcxM2E3NjlmOWM5MzAwZWUz
Y2VmOTczODdmMjc1YmZjN2QyZjIuLmVkZWVjNmM5YWUzMjQzNjQxMWFmMWM3ZDJkOWM5YWEyZjE1
ZDFhNjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC03
Miw3ICs3Miw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+Ci0jaW5jbHVkZSA8d3RmL1Rl
bXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApA
QCAtNjkyLDcgKzY5Miw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNU
b0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvCiAKIGJvb2wgVGVzdENv
bnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMm
IG9wdGlvbnMpCiB7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPFN0YXRlPiBjaGFuZ2VTdGF0ZShtX3N0
YXRlLCBSZXNldHRpbmcpOworICAgIFNldEZvclNjb3BlPFN0YXRlPiBjaGFuZ2VTdGF0ZShtX3N0
YXRlLCBSZXNldHRpbmcpOwogICAgIG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUgPSB0cnVlOwog
CiAgICAgLy8gVGhpcyBzZXR0aW5nIGRpZmZlcnMgYmV0d2VlbiB0aGUgYW50aXF1ZSBhbmQgbW9k
ZXJuIE1hYyBXZWJLaXQyIEFQSS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295035</attachid>
            <date>2016-11-16 23:45:39 -0800</date>
            <delta_ts>2016-11-17 00:17:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164761-20161117164534.patch</filename>
            <type>text/plain</type>
            <size>100217</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MGUyZWUwOTUzZWFlOTg2NmViMDhlOGRlYmQwZjUxNWIyOGI3OTY4Li5kNjM0ZDkwMWI1M2FhNmQ1
NTJhMGYwNTBjMzU0NzljMGE4NmE4MTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxNi0xMS0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBXVEY6OlRlbXBvcmFyeUNoYW5nZSB3aXRoIFdURjo6U2V0
Rm9yU2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NDc2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogYnl0ZWNvbXBp
bGVyL1NldEZvclNjb3BlLmg6IFJlbW92ZWQuCisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIu
Y3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHA6
CisgICAgICAgIChJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpkaXNwYXRjaCk6CisgICAg
ICAgICogaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rv
cjo6U2NyaXB0RGVidWdTZXJ2ZXI6OmRpc3BhdGNoQnJlYWtwb2ludEFjdGlvbkxvZyk6CisgICAg
ICAgIChJbnNwZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRjaEJyZWFrcG9pbnRBY3Rp
b25Tb3VuZCk6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRj
aEJyZWFrcG9pbnRBY3Rpb25Qcm9iZSk6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERlYnVn
U2VydmVyOjpzb3VyY2VQYXJzZWQpOgorICAgICAgICAoSW5zcGVjdG9yOjpTY3JpcHREZWJ1Z1Nl
cnZlcjo6ZGlzcGF0Y2hGdW5jdGlvblRvTGlzdGVuZXJzKToKKyAgICAgICAgKiBwYXJzZXIvUGFy
c2VyLmNwcDoKKwogMjAxNi0xMS0xNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgRXhjZXB0aW9uRnV6eiBuZWVkcyB0byBwbGFjYXRlIGV4Y2VwdGlvbiBjaGVjayB2
ZXJpZmljYXRpb24gYmVmb3JlIG92ZXJ3cml0aW5nIGEgdGhyb3duIGV4Y2VwdGlvbi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXgg
Y2YzYzYyNDdhNmRlNzlkZTk5YzlmZWJhN2M2Y2JkMjVlMGIyNTMxNC4uZGY1ZWY3NmMwNzdmOWEz
ZGZhY2FjNjZlMTY2MjYyNjUzYzQ5ZmM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAxNi0xMS0x
NiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAorICAgICAgICBbSlND
XSBXVEY6OlRlbXBvcmFyeUNoYW5nZSB3aXRoIFdURjo6U2V0Rm9yU2NvcGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDc2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEphdmFTY3JpcHRDb3JlJ3MgYnl0
ZWNvbXBpbGVyL1NldEZvclNjb3BlLmggaXMgY29tcGxldGVseSB0aGUgc2FtZQorICAgICAgICB0
byBXVEY6OlRlbXBvcmFyeUNoYW5nZS4gU2V0Rm9yU2NvcGUgc291bmRzIGJldHRlciBuYW1lIHNp
bmNlIGl0CisgICAgICAgIHNheXMgdGhhdCB0aGlzIG9iamVjdCB3b3JrcyBhcyBTY29wZS4KKwor
ICAgICAgICBXZSByZW5hbWUgV1RGOjpUZW1wb3JhcnlDaGFuZ2UgdG8gV1RGOjpTZXRGb3JTY29w
ZS4gQW5kIHJlcGxhY2UKKyAgICAgICAgYWxsIHRoZSB1c2UgdG8gdGhpcyBXVEY6OlNldEZvclNj
b3BlLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogd3RmL1NldEZvclNjb3BlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9UZW1wb3Jh
cnlDaGFuZ2UuaC4KKyAgICAgICAgKFdURjo6U2V0Rm9yU2NvcGU6OlNldEZvclNjb3BlKToKKyAg
ICAgICAgKFdURjo6U2V0Rm9yU2NvcGU6On5TZXRGb3JTY29wZSk6CisKKzIwMTYtMTEtMTYgIFl1
c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0VTNl1bV2Vi
Q29yZV0gQ2hhbmdlIEVTNl9NT0RVTEVTIGNvbXBpbGUgdGltZSBmbGFnIHRvIHJ1bnRpbWUgZmxh
ZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODI3
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAyM2NiNzNiYzFmZjVkODZlODhiMzBiMjFjYTRhY2RlNjYxZTM4NTJh
Li4xZTkwMzQ5Y2VhMzdkZjg2ZTNlYWRkYzMxMDY1MzE2YzMzZmU3N2Q3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsOTIgQEAKIDIwMTYtMTEtMTYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CiAKKyAgICAgICAgW0pTQ10gV1RGOjpUZW1wb3JhcnlDaGFuZ2Ugd2l0aCBXVEY6
OlNldEZvclNjb3BlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjQ3NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6YWJvcnQpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5OjpkZWZpbmUpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAqIGNzcy9FbGVtZW50
UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rv
cjo6bWF0Y2hTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKToKKyAgICAgICAgKiBjc3MvU3R5bGVS
ZXNvbHZlci5jcHA6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZpbGxTaG9ydGhhbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpwYXJzZVNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXI6OnBhcnNlNFZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNl
Qm9yZGVyUmFkaXVzKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL1NWR0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUpOgorICAgICAgICAqIGRv
bS9DdXN0b21FbGVtZW50UmVnaXN0cnkuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzdHlsZUZvckVsZW1lbnRJZ25vcmluZ1BlbmRpbmdTdHlsZXNoZWV0cyk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGVzdHJveVJlbmRlclRyZWUpOgorICAgICAg
ICAqIGRvbS9FdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdldDo6
ZmlyZUV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBkb20vTWljcm90YXNrcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNaWNyb3Rhc2tRdWV1ZTo6cGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQp
OgorICAgICAgICAqIGhpc3RvcnkvUGFnZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VDYWNoZTo6cHJ1bmVUb1NpemVOb3cpOgorICAgICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6dXBkYXRlQXNzb2NpYXRlZEF0dHJp
YnV0ZUZyb21Ub2tlbnMpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByZWxvYWRTY2FubmVyOjpzY2FuKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oOgorICAgICAgICAqIGxvYWRl
ci9Db250ZW50RmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6Omhh
bmRsZVByb3Zpc2lvbmFsTG9hZEZhaWx1cmUpOgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpwcnVuZUxpdmVSZXNvdXJjZXNUb1NpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnBydW5lRGVhZFJlc291cmNlc1RvU2l6ZSk6
CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpy
dW5Nb2RhbCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRT
Y3JvbGxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmFwcGx5UmVjdXJz
aXZlbHlXaXRoVmlzaWJsZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjphdXRv
U2l6ZUlmRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2
ZUhlYWRlcnMpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZvcmVTdWJsYXll
cnMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5n
ZXNBZnRlclN1YmxheWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1Rl
bXBvcmFyeU9wZW5HTFNldHRpbmcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJH
TDo6ZHJhd1RleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpwdXJnZUJhY2tpbmdTdG9yZXMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0xheWVyRGlyZWN0MkQuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmRIZWxwZXI6OndyaXRlQ2xpcGJvYXJkQ29udGVudHMpOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGJhclRoZW1lTWFjOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyR2VvbWV0cnlNYXA6OnB1c2hNYXBwaW5nc1RvQW5jZXN0b3IpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6aGl0VGVzdCk6Cisg
ICAgICAgICogcmVwbGF5L0V2ZW50TG9vcElucHV0RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudExvb3BJbnB1dERpc3BhdGNoZXI6OmRpc3BhdGNoSW5wdXQpOgorICAgICAg
ICAqIHN0b3JhZ2UvU3RvcmFnZU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFw
OjpzZXRJdGVtSWdub3JpbmdRdW90YSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhCbGVuZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhCbGVuZGVyOjphZGRBbmltYXRlZFBhdGgpOgor
CisyMDE2LTExLTE2ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAg
ICAgICAgIFtXZWJDb3JlXSBDbGVhbiB1cCBzY3JpcHQgbG9hZGluZyBjb2RlIGluIFhNTAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNjUxCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNmU5NzYzMDMzOWQ1NjAwMzA3NjNlOWNkMDlhZmM3YWU2OGZiZTlmNS4uNDNiY2Zm
YWU5MTQwOTUxYjU1NzVhMTc3NTBmYmM3ZjFmNTY1Njk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAxNi0xMS0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4K
KworICAgICAgICBbSlNDXSBXVEY6OlRlbXBvcmFyeUNoYW5nZSB3aXRoIFdURjo6U2V0Rm9yU2Nv
cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDc2
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKwogMjAxNi0xMS0xNCAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1v
dmUgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIgdG8gU2VjdXJp
dHlPcmlnaW5EYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZGRkNDRjZWZlODBjYjNhYmQxM2U2MmRl
NGU0ODY0ZGNkZDdlY2UwOC4uMTNlYTNiZDY2ZDQ5MzA5MzYyNmQzYWExZTU3ZGRmM2U2ODVjYzJi
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDE2LTExLTE2ICBZdXN1a2Ug
U3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCisgICAgICAgIFtKU0NdIFdURjo6VGVt
cG9yYXJ5Q2hhbmdlIHdpdGggV1RGOjpTZXRGb3JTY29wZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NzYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAg
ICgtW1dlYlZpZXcgdXBkYXRlVGV4dFRvdWNoQmFyXSk6CisKKzIwMTYtMTEtMTYgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0VTNl1bV2ViQ29yZV0g
Q2hhbmdlIEVTNl9NT0RVTEVTIGNvbXBpbGUgdGltZSBmbGFnIHRvIHJ1bnRpbWUgZmxhZwogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODI3CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCA3ZTA2ZmRlZWU3ZWEyM2M2MzkyNDg1MGIyYjAzMzk4MjBmNGMxYzhkLi40YjE3
MWE0OTRmMmYzNzk2ZTc3OTc2YTljYTc1ZjZiNDgwNThlNmRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDAgQEAKKzIwMTYtMTEtMTYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CisKKyAgICAgICAgW0pTQ10gV1RGOjpUZW1wb3JhcnlDaGFuZ2Ugd2l0aCBXVEY6OlNldEZv
clNjb3BlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQ3NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UGx1Z2luQ29udHJvbGxlclByb3h5Ojppbml0aWFsaXplKToKKyAgICAgICAgKiBQbHVnaW5Q
cm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tOgorICAgICAgICAoY3JlYXRlRW5j
b2RlZE9iamVjdCk6CisgICAgICAgIChkZWNvZGVPYmplY3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2tleWJvYXJk
Q2hhbmdlZFdpdGhJbmZvOmFkanVzdFNjcm9sbFZpZXc6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBk
YXRlVGV4dFRvdWNoQmFyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUGFzdGVib2FyZFByb3h5R3RrLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFzdGVib2FyZFByb3h5Ojp3cml0ZVRvQ2xpcGJvYXJk
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21w
b3NpdGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29y
ZGluYXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6Q29t
cG9zaXRpbmdDb29yZGluYXRvcjo6cHVyZ2VCYWNraW5nU3RvcmVzKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1v
dXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjprZXlFdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmRpc3BhdGNoVG91Y2hFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnNldEluaXRpYWxGb2N1cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omlu
c2VydFRleHRBc3luYyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBk
YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1t
OgorCiAyMDE2LTExLTE2ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyMDg1ODkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRl
eCA0MzdhMmVkZmI0NWVlMjM1YmM5NmYwOWFkNWUxOTQxNDQ1MjZkM2VlLi5lYWNlNGE2OTczNTJi
NDFiZGM0MjRlMWE2OWRiNzIxY2U1NDQxMWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC0zOSw3ICszOSw2
IEBACiAjaW5jbHVkZSAiTm9kZXMuaCIKICNpbmNsdWRlICJQYXJzZXJFcnJvci5oIgogI2luY2x1
ZGUgIlJlZ2lzdGVySUQuaCIKLSNpbmNsdWRlICJTZXRGb3JTY29wZS5oIgogI2luY2x1ZGUgIlN0
YXRpY1Byb3BlcnR5QW5hbHl6ZXIuaCIKICNpbmNsdWRlICJTeW1ib2xUYWJsZS5oIgogI2luY2x1
ZGUgIlRlbXBsYXRlUmVnaXN0cnlLZXkuaCIKQEAgLTQ4LDYgKzQ3LDcgQEAKICNpbmNsdWRlIDx3
dGYvSGFzaFRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1NlZ21lbnRlZFZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL1NldEZvclNjb3BlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL1NldEZvclNjb3BlLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGE4NTI1NjQ5N2M1MDRhNGU2MzMwNzBiY2JiY2U5YjY0MDI3MGI3OTQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9TZXRGb3JTY29wZS5oCisrKyAvZGV2L251bGwKQEAgLTEs
NTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotCi1uYW1lc3Bh
Y2UgSlNDIHsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWNsYXNzIFNldEZvclNjb3BlIHsKLXB1
YmxpYzoKLSAgICBTZXRGb3JTY29wZShUJiBjdXJyZW50VmFsdWUsIGNvbnN0IFQmIG5ld1ZhbHVl
KQotICAgICAgICA6IG1fcmVmKGN1cnJlbnRWYWx1ZSkKLSAgICAgICAgLCBtX29sZFZhbHVlKGN1
cnJlbnRWYWx1ZSkKLSAgICB7Ci0gICAgICAgIG1fcmVmID0gbmV3VmFsdWU7Ci0gICAgfQotCi0g
ICAgU2V0Rm9yU2NvcGUoVCYgY3VycmVudFZhbHVlLCBUJiYgbmV3VmFsdWUpCi0gICAgICAgIDog
bV9yZWYoY3VycmVudFZhbHVlKQotICAgICAgICAsIG1fb2xkVmFsdWUoY3VycmVudFZhbHVlKQot
ICAgIHsKLSAgICAgICAgY3VycmVudFZhbHVlID0gV1RGTW92ZShuZXdWYWx1ZSk7Ci0gICAgfQot
Ci0gICAgflNldEZvclNjb3BlKCkKLSAgICB7Ci0gICAgICAgIG1fcmVmID0gbV9vbGRWYWx1ZTsK
LSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgVCYgbV9yZWY7Ci0gICAgVCBtX29sZFZhbHVlOwotfTsK
LQotfTsgLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlci5jcHAKaW5kZXggOGIyMDIyM2RiN2M4NjliNjliYjU5M2UzMmE0YTAxYzczMTUxZmIz
Ny4uOThhY2QzMmRjZjQxMjQ2YjNmNGVjMmNmOGMzYWVhYjNhMjYxMjc4OCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCkBAIC05OCw3ICs5OCw3IEBAIGNs
YXNzIERlYnVnZ2VyUGF1c2VkU2NvcGUgewogICAgIERlYnVnZ2VyJiBtX2RlYnVnZ2VyOwogfTsK
IAotLy8gVGhpcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+LCBidXQg
dGhhdCBjYW5ub3QgYmUgdXNlZAorLy8gVGhpcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gU2V0Rm9yU2Nv
cGU8Ym9vbD4sIGJ1dCB0aGF0IGNhbm5vdCBiZSB1c2VkCiAvLyBhcyB0aGUgbV9pc1BhdXNlZCBm
aWVsZCB1c2VzIG9ubHkgb25lIGJpdC4KIGNsYXNzIFRlbXBvcmFyeVBhdXNlZFN0YXRlIHsKIHB1
YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAKaW5kZXggNjQzN2JiZGQwNDRiNDgyMmVk
ZTlmMDZiNjE3ZjhmOWVlMzI1OWQ4ZC4uZTI5NWY0MGJlOWNkMGI4NTNjMTBjNDU5Yjg4Y2FlNjNi
YTE5MjE3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAKQEAgLTI5LDcgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kUm91dGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yVmFsdWVzLmgiCi0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUg
PHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgQmFj
a2VuZERpc3BhdGNoZXI6OmRpc3BhdGNoKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICB7CiAg
ICAgICAgIC8vIEluIGNhc2UgdGhpcyBpcyBhIHJlLWVudHJhbnQgY2FsbCBmcm9tIGEgbmVzdGVk
IHJ1biBsb29wLCB3ZSBkb24ndCB3YW50IHRvIGxvc2UKICAgICAgICAgLy8gdGhlIG91dGVyIHJl
cXVlc3QncyBpZCBqdXN0IGJlY2F1c2UgdGhlIGlubmVyIHJlcXVlc3QgaXMgYm9ndXMuCi0gICAg
ICAgIFRlbXBvcmFyeUNoYW5nZTxPcHRpb25hbDxsb25nPj4gc2NvcGVkUmVxdWVzdElkKG1fY3Vy
cmVudFJlcXVlc3RJZCwgTnVsbG9wdCk7CisgICAgICAgIFNldEZvclNjb3BlPE9wdGlvbmFsPGxv
bmc+PiBzY29wZWRSZXF1ZXN0SWQobV9jdXJyZW50UmVxdWVzdElkLCBOdWxsb3B0KTsKIAogICAg
ICAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHBhcnNlZE1lc3NhZ2U7CiAgICAgICAgIGlmICgh
SW5zcGVjdG9yVmFsdWU6OnBhcnNlSlNPTihtZXNzYWdlLCBwYXJzZWRNZXNzYWdlKSkgewpAQCAt
MTQ1LDcgKzE0NSw3IEBAIHZvaWQgQmFja2VuZERpc3BhdGNoZXI6OmRpc3BhdGNoKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKIAogICAgIHsKICAgICAgICAgLy8gV2UgY291bGQgYmUgY2FsbGVkIHJl
LWVudHJhbnRseSBmcm9tIGEgbmVzdGVkIHJ1biBsb29wLCBzbyByZXN0b3JlIHRoZSBwcmV2aW91
cyBpZC4KLSAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPE9wdGlvbmFsPGxvbmc+PiBzY29wZWRSZXF1
ZXN0SWQobV9jdXJyZW50UmVxdWVzdElkLCByZXF1ZXN0SWQpOworICAgICAgICBTZXRGb3JTY29w
ZTxPcHRpb25hbDxsb25nPj4gc2NvcGVkUmVxdWVzdElkKG1fY3VycmVudFJlcXVlc3RJZCwgcmVx
dWVzdElkKTsKIAogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IG1ldGhvZFZhbHVlOwog
ICAgICAgICBpZiAoIW1lc3NhZ2VPYmplY3QtPmdldFZhbHVlKEFTQ0lJTGl0ZXJhbCgibWV0aG9k
IiksIG1ldGhvZFZhbHVlKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCA5YzVhYTc3NWE2N2NlOWY4ZGZhYzYw
ZmI0NDkyMzk0ZjRjM2FhY2Y2Li43NTVmNWI4NTM1YzJlMmE0MDRkOGVhZDYwNWM3MDIxZjNmNjhk
YWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERl
YnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1Njcmlw
dERlYnVnU2VydmVyLmNwcApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgIlNjcmlwdFZhbHVl
LmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3Rm
L1NldEZvclNjb3BlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKQEAgLTE0Myw3ICsxNDMs
NyBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRjaEJyZWFrcG9pbnRBY3Rpb25Mb2co
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbgogICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2Uo
bV9jYWxsaW5nTGlzdGVuZXJzLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2Uo
bV9jYWxsaW5nTGlzdGVuZXJzLCB0cnVlKTsKIAogICAgIFZlY3RvcjxTY3JpcHREZWJ1Z0xpc3Rl
bmVyKj4gbGlzdGVuZXJzQ29weTsKICAgICBjb3B5VG9WZWN0b3IobV9saXN0ZW5lcnMsIGxpc3Rl
bmVyc0NvcHkpOwpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmRp
c3BhdGNoQnJlYWtwb2ludEFjdGlvblNvdW5kKEV4ZWNTdGF0ZSosIGludCBicmVha3BvaW50CiAg
ICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVGVt
cG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZShtX2NhbGxpbmdMaXN0ZW5lcnMsIHRydWUpOworICAg
IFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2NhbGxpbmdMaXN0ZW5lcnMsIHRydWUpOwogCiAg
ICAgVmVjdG9yPFNjcmlwdERlYnVnTGlzdGVuZXIqPiBsaXN0ZW5lcnNDb3B5OwogICAgIGNvcHlU
b1ZlY3RvcihtX2xpc3RlbmVycywgbGlzdGVuZXJzQ29weSk7CkBAIC0xNzUsNyArMTc1LDcgQEAg
dm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlzcGF0Y2hCcmVha3BvaW50QWN0aW9uUHJvYmUoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBTY3IKICAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hhbmdlKG1fY2Fs
bGluZ0xpc3RlbmVycywgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1fY2Fs
bGluZ0xpc3RlbmVycywgdHJ1ZSk7CiAKICAgICB1bnNpZ25lZCBzYW1wbGVJZCA9IG1fbmV4dFBy
b2JlU2FtcGxlSWQrKzsKIApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2
ZXI6OnNvdXJjZVBhcnNlZChFeGVjU3RhdGUqIGV4ZWMsIFNvdXJjZVByb3ZpZGVyKiBzb3VyY2VQ
cm92CiAgICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZShtX2NhbGxpbmdMaXN0ZW5lcnMsIHRydWUp
OworICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2NhbGxpbmdMaXN0ZW5lcnMsIHRydWUp
OwogCiAgICAgYm9vbCBpc0Vycm9yID0gZXJyb3JMaW5lICE9IC0xOwogICAgIGlmIChpc0Vycm9y
KQpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmRpc3BhdGNoRnVu
Y3Rpb25Ub0xpc3RlbmVycyhKYXZhU2NyaXB0RXhlY3V0aW9uQ2FsbGJhY2sKICAgICBpZiAobV9s
aXN0ZW5lcnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBUZW1wb3JhcnlDaGFu
Z2U8Ym9vbD4gY2hhbmdlKG1fY2FsbGluZ0xpc3RlbmVycywgdHJ1ZSk7CisgICAgU2V0Rm9yU2Nv
cGU8Ym9vbD4gY2hhbmdlKG1fY2FsbGluZ0xpc3RlbmVycywgdHJ1ZSk7CiAKICAgICBkaXNwYXRj
aEZ1bmN0aW9uVG9MaXN0ZW5lcnMobV9saXN0ZW5lcnMsIGNhbGxiYWNrKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCBjZTZiZmE3YTFmODMxMjQzMjY4OWNh
N2M1ZjAzNzZhODdiYTEwN2JiLi5hYmRhYjNhOTY1NmIwMzdhNTgwZjkxYWIwM2RjMGI3OTcwMGE5
NTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0yNiw5ICsy
Niw5IEBACiAjaW5jbHVkZSAiQVNUQnVpbGRlci5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyUGFyc2VE
YXRhLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgotI2luY2x1ZGUgIlNldEZvclNjb3BlLmgi
CiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx1dGlsaXR5PgorI2luY2x1ZGUgPHd0Zi9TZXRG
b3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiAjZGVmaW5l
IHVwZGF0ZUVycm9yTWVzc2FnZShzaG91bGRQcmludFRva2VuLCAuLi4pIGRvIHtcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3YTVmZWJiODE5ODY4OTY1Y2Rl
NmU1YjZiNDIwMTRhMWU5ZDZmOGQ0Li5kMzZhMmRkMDQyOWUzZTYzMzdjMDNhYzhjYTgyZjQ4ZDU2
YzJkMDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4
NCw3ICsyODQsNyBAQAogCQlBOEE0NzQyQTE1MUE4MjVCMDA0MTIzRkYgLyogU3RkTGliRXh0cmFz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzMx
MTE1MUE4MjVCMDA0MTIzRkYgLyogU3RkTGliRXh0cmFzLmggKi87IH07CiAJCUE4QTQ3NDJDMTUx
QTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MzEzMTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdF
eHRyYXMuaCAqLzsgfTsKIAkJQThBNDc0MkQxNTFBODI1QjAwNDEyM0ZGIC8qIEhhc2hlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczMTQxNTFB
ODI1QjAwNDEyM0ZGIC8qIEhhc2hlci5oICovOyB9OwotCQlBOEE0NzQzMzE1MUE4MjVCMDA0MTIz
RkYgLyogVGVtcG9yYXJ5Q2hhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEE0NzMxQTE1MUE4MjVCMDA0MTIzRkYgLyogVGVtcG9yYXJ5Q2hhbmdl
LmggKi87IH07CisJCUE4QTQ3NDMzMTUxQTgyNUIwMDQxMjNGRiAvKiBTZXRGb3JTY29wZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczMUExNTFB
ODI1QjAwNDEyM0ZGIC8qIFNldEZvclNjb3BlLmggKi87IH07CiAJCUE4QTQ3NDM0MTUxQTgyNUIw
MDQxMjNGRiAvKiBBU0NJSUZhc3RQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzMxQzE1MUE4MjVCMDA0MTIzRkYgLyogQVNDSUlGYXN0UGF0
aC5oICovOyB9OwogCQlBOEE0NzQzNTE1MUE4MjVCMDA0MTIzRkYgLyogQXRvbWljU3RyaW5nLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MzFE
MTUxQTgyNUIwMDQxMjNGRiAvKiBBdG9taWNTdHJpbmcuY3BwICovOyB9OwogCQlBOEE0NzQzNjE1
MUE4MjVCMDA0MTIzRkYgLyogQXRvbWljU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzMxRTE1MUE4MjVCMDA0MTIzRkYgLyogQXRvbWlj
U3RyaW5nLmggKi87IH07CkBAIC02NTMsNyArNjUzLDcgQEAKIAkJQThBNDczMTExNTFBODI1QjAw
NDEyM0ZGIC8qIFN0ZExpYkV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTdGRMaWJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDczMTMx
NTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0V4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdHJpbmdFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QThBNDczMTQxNTFBODI1QjAwNDEyM0ZGIC8qIEhhc2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIYXNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThB
NDczMUExNTFBODI1QjAwNDEyM0ZGIC8qIFRlbXBvcmFyeUNoYW5nZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUZW1wb3JhcnlDaGFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQThBNDczMUExNTFBODI1QjAwNDEyM0ZGIC8qIFNldEZvclNjb3BlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldEZvclNjb3BlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MzFDMTUxQTgyNUIwMDQxMjNGRiAvKiBBU0NJSUZhc3RQ
YXRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFTQ0lJRmFzdFBhdGguaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDczMUQxNTFBODI1QjAwNDEyM0ZGIC8q
IEF0b21pY1N0cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
dG9taWNTdHJpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzMxRTE1
MUE4MjVCMDA0MTIzRkYgLyogQXRvbWljU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEF0b21pY1N0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTA2NSw3ICsxMDY1LDcgQEAKIAkJCQkwRkREQkZBNjE2NjZERkEzMDBDNTVGRUYgLyogU3RyaW5n
UHJpbnRTdHJlYW0uaCAqLywKIAkJCQk1NTk3RjgyQzFEOTRCOTk3MDA2NkJDMjEgLyogU3luY2hy
b25pemVkRml4ZWRRdWV1ZS5oICovLAogCQkJCTBGQjMxN0MzMUM0ODgwMDEwMDdFMzk1QSAvKiBT
eXN0ZW1UcmFjaW5nLmggKi8sCi0JCQkJQThBNDczMUExNTFBODI1QjAwNDEyM0ZGIC8qIFRlbXBv
cmFyeUNoYW5nZS5oICovLAorCQkJCUE4QTQ3MzFBMTUxQTgyNUIwMDQxMjNGRiAvKiBTZXRGb3JT
Y29wZS5oICovLAogCQkJCUE4QTQ3MzJGMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRGdW5jdGlv
bkludm9jYXRpb24uaCAqLywKIAkJCQlBOEE0NzMzMDE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFk
SWRlbnRpZmllckRhdGFQdGhyZWFkcy5jcHAgKi8sCiAJCQkJQThBNDczMzExNTFBODI1QjAwNDEy
M0ZGIC8qIFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuaCAqLywKQEAgLTE0NzQsNyArMTQ3
NCw3IEBACiAJCQkJNzBFQ0E2MEUxQjAyNDI2ODAwNDQ5NzM5IC8qIFN5bWJvbEltcGwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTcwQTk5M0ZGMUFENzE1MTMwMEZBNjE1QiAvKiBTeW1ib2xSZWdpc3Ry
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCMzE3QzQxQzQ4ODAwMTAwN0UzOTVBIC8qIFN5c3Rl
bVRyYWNpbmcuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QTQ3NDMzMTUxQTgyNUIwMDQxMjNGRiAv
KiBUZW1wb3JhcnlDaGFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4QTQ3NDMzMTUxQTgyNUIw
MDQxMjNGRiAvKiBTZXRGb3JTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMxODFDODAxRDMw
NzhEQTAwRjVGQTE2IC8qIFRleHRCcmVha0l0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OEE0NzQ0NDE1MUE4MjVCMDA0MTIzRkYgLyogVGV4dFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEE0NzQ0NzE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9u
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NldEZvclNjb3Bl
LmggYi9Tb3VyY2UvV1RGL3d0Zi9TZXRGb3JTY29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2OTVlZmExMTFk
MTE5MWVhNzY4YzBkYmU1MjRjNzdmODY2ODlmYjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9TZXRGb3JTY29wZS5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8v
IFNldEZvclNjb3BlPD4gaXMgdXNlZnVsIGZvciBzZXR0aW5nIGEgdmFyaWFibGUgdG8gYSBuZXcg
dmFsdWUgb25seSB3aXRoaW4gYQorLy8gcGFydGljdWxhciBzY29wZS4gQW4gU2V0Rm9yU2NvcGU8
PiBvYmplY3QgY2hhbmdlcyBhIHZhcmlhYmxlIHRvIGl0cyBvcmlnaW5hbAorLy8gdmFsdWUgdXBv
biBkZXN0cnVjdGlvbiwgbWFraW5nIGl0IGFuIGFsdGVybmF0aXZlIHRvIHdyaXRpbmcgInZhciA9
IGZhbHNlOyIKKy8vIG9yICJ2YXIgPSBvbGRWYWw7IiBhdCBhbGwgb2YgYSBibG9jaydzIGV4aXQg
cG9pbnRzLgorLy8KKy8vIFRoaXMgc2hvdWxkIGJlIG9idmlvdXMsIGJ1dCBub3RlIHRoYXQgYW4g
U2V0Rm9yU2NvcGU8PiBpbnN0YW5jZSBzaG91bGQgaGF2ZSBhCisvLyBzaG9ydGVyIGxpZmV0aW1l
IHRoYW4gaXRzIHNjb3BlZFZhcmlhYmxlLCB0byBwcmV2ZW50IGludmFsaWQgbWVtb3J5IHdyaXRl
cworLy8gd2hlbiB0aGUgU2V0Rm9yU2NvcGU8PiBvYmplY3QgaXMgZGVzdHJveWVkLgorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgU2V0Rm9yU2NvcGUgeworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFNldEZvclNjb3BlKTsKK3B1YmxpYzoKKyAgICBTZXRGb3JTY29wZShUJiBzY29wZWRW
YXJpYWJsZSkKKyAgICAgICAgOiBtX3Njb3BlZFZhcmlhYmxlKHNjb3BlZFZhcmlhYmxlKQorICAg
ICAgICAsIG1fb3JpZ2luYWxWYWx1ZShzY29wZWRWYXJpYWJsZSkKKyAgICB7CisgICAgfQorICAg
IFNldEZvclNjb3BlKFQmIHNjb3BlZFZhcmlhYmxlLCBUIG5ld1ZhbHVlKQorICAgICAgICA6IFNl
dEZvclNjb3BlKHNjb3BlZFZhcmlhYmxlKQorICAgIHsKKyAgICAgICAgbV9zY29wZWRWYXJpYWJs
ZSA9IG5ld1ZhbHVlOworICAgIH0KKworICAgIH5TZXRGb3JTY29wZSgpCisgICAgeworICAgICAg
ICBtX3Njb3BlZFZhcmlhYmxlID0gbV9vcmlnaW5hbFZhbHVlOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBUJiBtX3Njb3BlZFZhcmlhYmxlOworICAgIFQgbV9vcmlnaW5hbFZhbHVlOworfTsKKwor
fQorCit1c2luZyBXVEY6OlNldEZvclNjb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
VGVtcG9yYXJ5Q2hhbmdlLmggYi9Tb3VyY2UvV1RGL3d0Zi9UZW1wb3JhcnlDaGFuZ2UuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzE3ZDBiNGYwZWQ2M2UwMGJjOWIxM2NmM2M0MjA2
OTgyMmQyZjBhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9UZW1wb3JhcnlDaGFuZ2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDcx
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQot
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFRlbXBvcmFyeUNoYW5nZV9oCi0jZGVmaW5lIFRlbXBv
cmFyeUNoYW5nZV9oCi0KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNl
IFdURiB7Ci0KLS8vIFRlbXBvcmFyeUNoYW5nZTw+IGlzIHVzZWZ1bCBmb3Igc2V0dGluZyBhIHZh
cmlhYmxlIHRvIGEgbmV3IHZhbHVlIG9ubHkgd2l0aGluIGEKLS8vIHBhcnRpY3VsYXIgc2NvcGUu
IEFuIFRlbXBvcmFyeUNoYW5nZTw+IG9iamVjdCBjaGFuZ2VzIGEgdmFyaWFibGUgdG8gaXRzIG9y
aWdpbmFsCi0vLyB2YWx1ZSB1cG9uIGRlc3RydWN0aW9uLCBtYWtpbmcgaXQgYW4gYWx0ZXJuYXRp
dmUgdG8gd3JpdGluZyAidmFyID0gZmFsc2U7IgotLy8gb3IgInZhciA9IG9sZFZhbDsiIGF0IGFs
bCBvZiBhIGJsb2NrJ3MgZXhpdCBwb2ludHMuCi0vLwotLy8gVGhpcyBzaG91bGQgYmUgb2J2aW91
cywgYnV0IG5vdGUgdGhhdCBhbiBUZW1wb3JhcnlDaGFuZ2U8PiBpbnN0YW5jZSBzaG91bGQgaGF2
ZSBhCi0vLyBzaG9ydGVyIGxpZmV0aW1lIHRoYW4gaXRzIHNjb3BlZFZhcmlhYmxlLCB0byBwcmV2
ZW50IGludmFsaWQgbWVtb3J5IHdyaXRlcwotLy8gd2hlbiB0aGUgVGVtcG9yYXJ5Q2hhbmdlPD4g
b2JqZWN0IGlzIGRlc3Ryb3llZC4KLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWNsYXNzIFRlbXBv
cmFyeUNoYW5nZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGVtcG9yYXJ5Q2hhbmdlKTsK
LXB1YmxpYzoKLSAgICBUZW1wb3JhcnlDaGFuZ2UoVCYgc2NvcGVkVmFyaWFibGUpCi0gICAgICAg
IDogbV9zY29wZWRWYXJpYWJsZShzY29wZWRWYXJpYWJsZSkKLSAgICAgICAgLCBtX29yaWdpbmFs
VmFsdWUoc2NvcGVkVmFyaWFibGUpCi0gICAgewotICAgIH0KLSAgICBUZW1wb3JhcnlDaGFuZ2Uo
VCYgc2NvcGVkVmFyaWFibGUsIFQgbmV3VmFsdWUpCi0gICAgICAgIDogVGVtcG9yYXJ5Q2hhbmdl
KHNjb3BlZFZhcmlhYmxlKQotICAgIHsKLSAgICAgICAgbV9zY29wZWRWYXJpYWJsZSA9IG5ld1Zh
bHVlOwotICAgIH0KLQotICAgIH5UZW1wb3JhcnlDaGFuZ2UoKQotICAgIHsKLSAgICAgICAgbV9z
Y29wZWRWYXJpYWJsZSA9IG1fb3JpZ2luYWxWYWx1ZTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAg
VCYgbV9zY29wZWRWYXJpYWJsZTsKLSAgICBUIG1fb3JpZ2luYWxWYWx1ZTsKLX07Ci0KLX0KLQot
dXNpbmcgV1RGOjpUZW1wb3JhcnlDaGFuZ2U7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAKaW5kZXggMGZkZWQwZTVhYjI2NmUyZmVhZGRj
YTZlZDM3OGIwYTkzMjcwNjYzNy4uMGU3YmI2YmRhZDQ0NzU5OGM2YTI1ZWQ1MzZhNTU1ZWYwY2Q3
MTZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3Bw
CkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lbW9y
eUlEQkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIk1lbW9yeU9iamVjdFN0b3JlLmgiCi0jaW5j
bHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgSURCU2VydmVyIHsKQEAgLTIxMSw3
ICsyMTEsNyBAQCB2b2lkIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjphYm9ydCgpCiB7
CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjphYm9y
dCgpIik7CiAKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hhbmdlKG1faXNBYm9ydGluZywg
dHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1faXNBYm9ydGluZywgdHJ1ZSk7
CiAKICAgICBmb3IgKGF1dG8gaXRlcmF0b3IgOiBtX29yaWdpbmFsSW5kZXhOYW1lcykKICAgICAg
ICAgaXRlcmF0b3Iua2V5LT5yZW5hbWUoaXRlcmF0b3IudmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50UmVnaXN0cnlDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50UmVnaXN0cnlDdXN0
b20uY3BwCmluZGV4IGI4YTNiODYxY2ExZGNkNDUzY2ZkMTE5NGY2MzNlMGEwYjk0YzRkN2EuLjli
OWM5YWY3OWYzOWMzNGZlZmEzMGVlZjI1ZmE2NzVjNjc3MmNhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRSZWdpc3RyeUN1
c3RvbS5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBKU1ZhbHVlIEpTQ3VzdG9tRWxlbWVudFJlZ2lz
dHJ5OjpkZWZpbmUoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRF
cnJvcihzdGF0ZSwgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IGRlZmluZSBhIGN1c3RvbSBl
bGVtZW50IHdoaWxlIGRlZmluaW5nIGFub3RoZXIgY3VzdG9tIGVsZW1lbnQiKSk7CiAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4g
Y2hhbmdlKHJlZ2lzdHJ5LmVsZW1lbnREZWZpbml0aW9uSXNSdW5uaW5nKCksIHRydWUpOworICAg
IFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShyZWdpc3RyeS5lbGVtZW50RGVmaW5pdGlvbklzUnVu
bmluZygpLCB0cnVlKTsKIAogICAgIGlmIChyZWdpc3RyeS5maW5kSW50ZXJmYWNlKGxvY2FsTmFt
ZSkpIHsKICAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUsIEFTQ0lJ
TGl0ZXJhbCgiQ2Fubm90IGRlZmluZSBtdWx0aXBsZSBjdXN0b20gZWxlbWVudHMgd2l0aCB0aGUg
c2FtZSB0YWcgbmFtZSIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAKaW5kZXggNDUxMDJlZmZjMTBlZGY4YjA2ZmExOGE4ZDdhMmZhMGU1MDlh
Y2NhZi4uMjA4N2E4NmY3M2Y2YjI2YjQ3Nzg1MzRkYTZkZDFiYWY3YTRhOTA3MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTU5LDcg
KzU5LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
SlNNb2R1bGVSZWNvcmQuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24u
aD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZv
clNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1RleHRQb3NpdGlvbi5oPgogCkBAIC0yNTIsNyArMjUyLDcgQEAgSlNDOjpKU1ZhbHVlIFNjcmlw
dENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU01vZHVs
ZVJlY28KIAogICAgIGF1dG8mIHNoZWxsID0gKndpbmRvd1NoZWxsKHdvcmxkKTsKICAgICBhdXRv
JiBzdGF0ZSA9ICpzaGVsbC53aW5kb3coKS0+Z2xvYmFsRXhlYygpOwotICAgIFRlbXBvcmFyeUNo
YW5nZTxjb25zdCBTdHJpbmcqPiBzb3VyY2VVUkxTY29wZShtX3NvdXJjZVVSTCwgJnNvdXJjZVVS
TC5zdHJpbmcoKSk7CisgICAgU2V0Rm9yU2NvcGU8Y29uc3QgU3RyaW5nKj4gc291cmNlVVJMU2Nv
cGUobV9zb3VyY2VVUkwsICZzb3VyY2VVUkwuc3RyaW5nKCkpOwogCiAgICAgUmVmPEZyYW1lPiBw
cm90ZWN0b3IobV9mcmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVt
ZW50UnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xs
ZWN0b3IuY3BwCmluZGV4IGUyYmY3Nzg0ODJkNTc2N2YyYTkwMmY5MjUwNTU3NDVhYzJhMWNkYmEu
LmNmYjlkOTExYmIyZTQwZTM1N2VmZDM4NjcyNWIzOGY0OTg1MzM5YzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApAQCAtNDYsNyArNDYsNyBAQAogI2lu
Y2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlN0eWxlU2NvcGUuaCIKICNpbmNs
dWRlICJTdHlsZWRFbGVtZW50LmgiCi0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgor
I2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTI4MCw3ICsyODAsNyBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaFNsb3R0ZWRQ
c2V1ZG9FbGVtZW50UnVsZXMoTWF0Y2hSZXF1ZXN0JiBtYXRjaFJlcQogICAgICAgICBpZiAoIXNs
b3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
Ly8gTWF0Y2ggaW4gdGhlIGN1cnJlbnQgc2NvcGUuCi0gICAgICAgIFRlbXBvcmFyeUNoYW5nZTxi
b29sPiBjaGFuZ2UobV9pc01hdGNoaW5nU2xvdHRlZFBzZXVkb0VsZW1lbnRzLCB0cnVlKTsKKyAg
ICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1faXNNYXRjaGluZ1Nsb3R0ZWRQc2V1ZG9F
bGVtZW50cywgdHJ1ZSk7CiAKICAgICAgICAgTWF0Y2hSZXF1ZXN0IHNjb3BlTWF0Y2hSZXF1ZXN0
KG51bGxwdHIsIG1hdGNoUmVxdWVzdC5pbmNsdWRlRW1wdHlSdWxlcywgbWF0Y2hSZXF1ZXN0LnRy
ZWVDb250ZXh0T3JkaW5hbCk7CiAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChz
bG90dGVkUHNldWRvRWxlbWVudFJ1bGVzLmdldCgpLCBzY29wZU1hdGNoUmVxdWVzdCwgcnVsZVJh
bmdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAwZGM1OTc2YTEzODEx
ZTI3OTZkOWY3ZTUyNTUzZTk4MDU2NWExMzNhLi4xOWE3MDM3NWVhZTRhMmE2NjkyNTkyZTA3N2M2
YTY3YmQ5NDc2ZWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xMzgs
OCArMTM4LDggQEAKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNpbmNsdWRl
ICJYTUxOYW1lcy5oIgogI2luY2x1ZGUgPGJpdHNldD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2Nv
cGUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBv
cmFyeUNoYW5nZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9BdG9taWNTdHJpbmdIYXNoLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
LmNwcAppbmRleCAyYTAwYzMyNzAyY2Q4YTY1NDFiZTlmODRhZjZjNzE1M2E0NTkwMmE2Li5iMWZi
MTEyZDNkMjEwNGQ2ZTQzZWM2OThlM2RhMzMyMjBhOTUwYmIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXIuY3BwCkBAIC0xMTIsOCArMTEyLDggQEAKICNpbmNsdWRlIDxsaW1p
dHMuaD4KICNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KICNpbmNsdWRl
IDx3dGYvZHRvYS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1ZmZlci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KQEAgLTM0MTYsNyArMzQxNiw3IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZUZpbGxTaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGNvbnN0
IENTU1Byb3BlcnR5SUQqIHByCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFNob3J0aGFu
ZFNjb3BlIHNjb3BlKHRoaXMsIHByb3BJZCk7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNo
YW5nZShtX2ltcGxpY2l0U2hvcnRoYW5kKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2Uo
bV9pbXBsaWNpdFNob3J0aGFuZCk7CiAKICAgICBib29sIHBhcnNlZFByb3BlcnR5W2NNYXhGaWxs
UHJvcGVydGllc10gPSB7IGZhbHNlIH07CiAgICAgUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZXNbY01h
eEZpbGxQcm9wZXJ0aWVzXTsKQEAgLTM4MTIsNyArMzgxMiw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BJZCwgY29uc3QgU3R5bGVQcm9wZXJ0eVNo
b3J0aGFuCiAKICAgICAvLyBGaWxsIGluIGFueSByZW1haW5pbmcgcHJvcGVydGllcyB3aXRoIHRo
ZSBpbml0aWFsIHZhbHVlLgogICAgIGF1dG8mIGNzc1ZhbHVlUG9vbCA9IENTU1ZhbHVlUG9vbDo6
c2luZ2xldG9uKCk7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZShtX2ltcGxpY2l0
U2hvcnRoYW5kLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9pbXBsaWNp
dFNob3J0aGFuZCwgdHJ1ZSk7CiAgICAgY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCogcHJv
cGVydGllc0ZvckluaXRpYWxpemF0aW9uID0gc2hvcnRoYW5kLnByb3BlcnRpZXNGb3JJbml0aWFs
aXphdGlvbigpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaG9ydGhhbmQubGVuZ3Ro
KCk7ICsraSkgewogICAgICAgICBpZiAocHJvcGVydHlGb3VuZFtpXSkKQEAgLTM4NDksNyArMzg0
OSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZTRWYWx1ZXMoQ1NTUHJvcGVydHlJRCBwcm9wSWQs
IGNvbnN0IENTU1Byb3BlcnR5SUQgKnByb3BlcnRpCiAgICAgICAgICAgICBpZiAoIXBhcnNlVmFs
dWUocHJvcGVydGllc1swXSwgaW1wb3J0YW50KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICBDU1NWYWx1ZSogdmFsdWUgPSBtX3BhcnNlZFByb3BlcnRpZXMubGFz
dCgpLnZhbHVlKCk7Ci0gICAgICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hhbmdlKG1f
aW1wbGljaXRTaG9ydGhhbmQsIHRydWUpOworICAgICAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4g
Y2hhbmdlKG1faW1wbGljaXRTaG9ydGhhbmQsIHRydWUpOwogICAgICAgICAgICAgYWRkUHJvcGVy
dHkocHJvcGVydGllc1sxXSwgdmFsdWUsIGltcG9ydGFudCk7CiAgICAgICAgICAgICBhZGRQcm9w
ZXJ0eShwcm9wZXJ0aWVzWzJdLCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICAgICAgICAgIGFkZFBy
b3BlcnR5KHByb3BlcnRpZXNbM10sIHZhbHVlLCBpbXBvcnRhbnQpOwpAQCAtMzg1OSw3ICszODU5
LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlNFZhbHVlcyhDU1NQcm9wZXJ0eUlEIHByb3BJZCwg
Y29uc3QgQ1NTUHJvcGVydHlJRCAqcHJvcGVydGkKICAgICAgICAgICAgIGlmICghcGFyc2VWYWx1
ZShwcm9wZXJ0aWVzWzBdLCBpbXBvcnRhbnQpIHx8ICFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMV0s
IGltcG9ydGFudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAg
Q1NTVmFsdWUqIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzW21fcGFyc2VkUHJvcGVydGllcy5z
aXplKCkgLSAyXS52YWx1ZSgpOwotICAgICAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNo
YW5nZShtX2ltcGxpY2l0U2hvcnRoYW5kLCB0cnVlKTsKKyAgICAgICAgICAgIFNldEZvclNjb3Bl
PGJvb2w+IGNoYW5nZShtX2ltcGxpY2l0U2hvcnRoYW5kLCB0cnVlKTsKICAgICAgICAgICAgIGFk
ZFByb3BlcnR5KHByb3BlcnRpZXNbMl0sIHZhbHVlLCBpbXBvcnRhbnQpOwogICAgICAgICAgICAg
dmFsdWUgPSBtX3BhcnNlZFByb3BlcnRpZXNbbV9wYXJzZWRQcm9wZXJ0aWVzLnNpemUoKSAtIDJd
LnZhbHVlKCk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzNdLCB2YWx1ZSwg
aW1wb3J0YW50KTsKQEAgLTM4NjksNyArMzg2OSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZTRW
YWx1ZXMoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGNvbnN0IENTU1Byb3BlcnR5SUQgKnByb3BlcnRp
CiAgICAgICAgICAgICBpZiAoIXBhcnNlVmFsdWUocHJvcGVydGllc1swXSwgaW1wb3J0YW50KSB8
fCAhcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzFdLCBpbXBvcnRhbnQpIHx8ICFwYXJzZVZhbHVlKHBy
b3BlcnRpZXNbMl0sIGltcG9ydGFudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgQ1NTVmFsdWUqIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzW21fcGFyc2Vk
UHJvcGVydGllcy5zaXplKCkgLSAyXS52YWx1ZSgpOwotICAgICAgICAgICAgVGVtcG9yYXJ5Q2hh
bmdlPGJvb2w+IGNoYW5nZShtX2ltcGxpY2l0U2hvcnRoYW5kLCB0cnVlKTsKKyAgICAgICAgICAg
IFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2ltcGxpY2l0U2hvcnRoYW5kLCB0cnVlKTsKICAg
ICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNbM10sIHZhbHVlLCBpbXBvcnRhbnQpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg2MjQsNyArODYyNCw3IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZUJvcmRlclJhZGl1cyhDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBp
bXBvcnRhbnQpCiAgICAgfSBlbHNlCiAgICAgICAgIGNvbXBsZXRlQm9yZGVyUmFkaWkocmFkaWlb
MV0pOwogCi0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZShtX2ltcGxpY2l0U2hvcnRo
YW5kLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9pbXBsaWNpdFNob3J0
aGFuZCwgdHJ1ZSk7CiAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJUb3BMZWZ0UmFk
aXVzLCBjcmVhdGVQcmltaXRpdmVWYWx1ZVBhaXIoV1RGTW92ZShyYWRpaVswXVswXSksIFdURk1v
dmUocmFkaWlbMV1bMF0pKSwgaW1wb3J0YW50KTsKICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0
eUJvcmRlclRvcFJpZ2h0UmFkaXVzLCBjcmVhdGVQcmltaXRpdmVWYWx1ZVBhaXIoV1RGTW92ZShy
YWRpaVswXVsxXSksIFdURk1vdmUocmFkaWlbMV1bMV0pKSwgaW1wb3J0YW50KTsKICAgICBhZGRQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzLCBjcmVhdGVQcmltaXRp
dmVWYWx1ZVBhaXIoV1RGTW92ZShyYWRpaVswXVsyXSksIFdURk1vdmUocmFkaWlbMV1bMl0pKSwg
aW1wb3J0YW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU1ZHQ1NT
UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU1ZHQ1NTUGFyc2VyLmNwcApp
bmRleCBlMzQ1ZjljYzE1Yzg1YjZmM2MxMzg5NjhjNjMyMjg0N2M4NmRkYWYzLi4yM2MyYTE1ZDJl
YjQ1MjEwYjEwZWMwNzM4MWM0NGJiMzA3OTRjNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL1NWR0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9TVkdDU1NQYXJzZXIuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
VGhlbWUuaCIKICNpbmNsdWRlICJTVkdQYWludC5oIgogCi0jaW5jbHVkZSA8d3RmL1RlbXBvcmFy
eUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTIxMyw3ICsyMTMsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VTVkdWYWx1
ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eU1hcmtlcjoKICAgICB7CiAgICAgICAgIFNob3J0aGFuZFNjb3BlIHNjb3BlKHRoaXMsIHBy
b3BJZCk7Ci0gICAgICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2UobV9pbXBsaWNpdFNo
b3J0aGFuZCwgdHJ1ZSk7CisgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2ltcGxp
Y2l0U2hvcnRoYW5kLCB0cnVlKTsKICAgICAgICAgaWYgKCFwYXJzZVZhbHVlKENTU1Byb3BlcnR5
TWFya2VyU3RhcnQsIGltcG9ydGFudCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIGlmIChtX3ZhbHVlTGlzdC0+Y3VycmVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3Vz
dG9tRWxlbWVudFJlZ2lzdHJ5LmgKaW5kZXggODgzM2UzYWIwZmNjNjQwOWM3ZGFlNDM4ZDY4NzRi
NGQ5NmJlZDM5MC4uMTEyMDk3YjFjMjgzZjhjMDg0NDdmMWQwYWMzMTVmZmM2ZTNhMWIyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVnaXN0cnkuaApAQCAtMjgsNyArMjgs
NyBAQAogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFu
Z2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9taWNTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CiAK
QEAgLTc2LDcgKzc2LDcgQEAgY2xhc3MgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5IDogcHVibGljIFJl
ZkNvdW50ZWQ8Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5PiB7CiAKICAgICBib29sIG1fZWxlbWVudERl
ZmluaXRpb25Jc1J1bm5pbmcgeyBmYWxzZSB9OwogCi0gICAgZnJpZW5kIGNsYXNzIEVsZW1lbnRE
ZWZpbml0aW9uSXNSdW5uaW5nVGVtcG9yYXJ5Q2hhbmdlOworICAgIGZyaWVuZCBjbGFzcyBFbGVt
ZW50RGVmaW5pdGlvbklzUnVubmluZ1NldEZvclNjb3BlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggZWYxMjZiYzk3YzRiMDIzMzhlNjg2ODVkYjZkNDBlMDhmOWNhNGZmNC4u
YmYyYWFhYjBmZjI4Yzg3ZDM4MzM0Y2U0NTIzNGFmZDA2MmJkYmUyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC0xOTIsOCArMTkyLDggQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0
Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVk
ZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVmZmVyLmg+CiAjaW5jbHVkZSA8eWFyci9SZWd1
bGFyRXhwcmVzc2lvbi5oPgogCkBAIC0xODQwLDcgKzE4NDAsNyBAQCB2b2lkIERvY3VtZW50Ojpy
ZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlIGNoYW5nZSkKICAgICAgICAgbV9pblN0eWxlUmVjYWxj
ID0gZmFsc2U7CiAKICAgICAgICAgaWYgKHN0eWxlVXBkYXRlKSB7Ci0gICAgICAgICAgICBUZW1w
b3JhcnlDaGFuZ2U8Ym9vbD4gaW5SZW5kZXJUcmVlVXBkYXRlKG1faW5SZW5kZXJUcmVlVXBkYXRl
LCB0cnVlKTsKKyAgICAgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGluUmVuZGVyVHJlZVVwZGF0
ZShtX2luUmVuZGVyVHJlZVVwZGF0ZSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIFJlbmRlclRyZWVV
cGRhdGVyIHVwZGF0ZXIoKnRoaXMpOwogICAgICAgICAgICAgdXBkYXRlci5jb21taXQoV1RGTW92
ZShzdHlsZVVwZGF0ZSkpOwpAQCAtMTk2OSw3ICsxOTY5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJl
bmRlclN0eWxlPiBEb2N1bWVudDo6c3R5bGVGb3JFbGVtZW50SWdub3JpbmdQZW5kaW5nU3R5bGVz
aGVldHMKICAgICAvLyBPbiBpT1MgcmVxdWVzdCBkZWxlZ2F0ZXMgY2FsbGVkIGR1cmluZyBzdHls
ZUZvckVsZW1lbnQgbWF5IHJlc3VsdCBpbiByZS1lbnRlcmluZyBXZWJLaXQgYW5kIGtpbGxpbmcg
dGhlIHN0eWxlIHJlc29sdmVyLgogICAgIFN0eWxlOjpQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlz
YWJsZXIgZGlzYWJsZXIoKnRoaXMpOwogCi0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5n
ZShtX2lnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cywgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9v
bD4gY2hhbmdlKG1faWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzLCB0cnVlKTsKICAgICBhdXRvIGVs
ZW1lbnRTdHlsZSA9IGVsZW1lbnQucmVzb2x2ZVN0eWxlKHBhcmVudFN0eWxlKTsKIAogICAgIGlm
IChlbGVtZW50U3R5bGUucmVsYXRpb25zKSB7CkBAIC0yMjE4LDcgKzIyMTgsNyBAQCB2b2lkIERv
Y3VtZW50OjpkZXN0cm95UmVuZGVyVHJlZSgpCiAgICAgQVNTRVJUKGhhc0xpdmluZ1JlbmRlclRy
ZWUoKSk7CiAgICAgQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgIT0gSW5QYWdlQ2FjaGUpOwogCi0g
ICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZShtX3JlbmRlclRyZWVCZWluZ0Rlc3Ryb3ll
ZCwgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1fcmVuZGVyVHJlZUJlaW5n
RGVzdHJveWVkLCB0cnVlKTsKIAogICAgIGlmICh0aGlzID09ICZ0b3BEb2N1bWVudCgpKQogICAg
ICAgICBjbGVhckFYT2JqZWN0Q2FjaGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCmlu
ZGV4IDYxNjQ1ZWZlZjE5ZmM4YzI5MmRhM2M5MzEwMzU5ZWYzMWRjZGNjNzEuLjZjNmU2YjAzNTQ4
NGRiNmUyODQyMzk0NTFlOWNkOTZkZjg4MGU1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
LmNwcApAQCAtNDIsOCArNDIsOCBAQAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1
ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNp
bmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV1RGOwpAQCAtMTk0LDcgKzE5NCw3IEBAIGJvb2wgRXZlbnRUYXJn
ZXQ6OmZpcmVFdmVudExpc3RlbmVycyhFdmVudCYgZXZlbnQpCiAgICAgaWYgKCFkYXRhKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBmaXJpbmdFdmVu
dExpc3RlbmVyc1Njb3BlKGRhdGEtPmlzRmlyaW5nRXZlbnRMaXN0ZW5lcnMsIHRydWUpOworICAg
IFNldEZvclNjb3BlPGJvb2w+IGZpcmluZ0V2ZW50TGlzdGVuZXJzU2NvcGUoZGF0YS0+aXNGaXJp
bmdFdmVudExpc3RlbmVycywgdHJ1ZSk7CiAKICAgICBpZiAoYXV0byogbGlzdGVuZXJzVmVjdG9y
ID0gZGF0YS0+ZXZlbnRMaXN0ZW5lck1hcC5maW5kKGV2ZW50LnR5cGUoKSkpIHsKICAgICAgICAg
ZmlyZUV2ZW50TGlzdGVuZXJzKGV2ZW50LCAqbGlzdGVuZXJzVmVjdG9yKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb3Rhc2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
aWNyb3Rhc2tzLmNwcAppbmRleCBjYjRmMzRjODhmZWNlMzVkM2ZlMDY5ZTE1Zjg3M2M5ODIzYjc2
YTYxLi4xOTZkZmVkMTAyMDY0MzVmNmZlY2U0YzdhODU5MTQ2ZmNlYjlmOGY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTWljcm90YXNrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL01pY3JvdGFza3MuY3BwCkBAIC0yMyw3ICsyMyw3IEBACiAjaW5jbHVkZSAiTWljcm90YXNr
cy5oIgogCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9y
YXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtODQsNyArODQsNyBAQCB2b2lkIE1pY3JvdGFza1F1ZXVlOjpwZXJmb3Jt
TWljcm90YXNrQ2hlY2twb2ludCgpCiAgICAgaWYgKG1fcGVyZm9ybWluZ01pY3JvdGFza0NoZWNr
cG9pbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFu
Z2UobV9wZXJmb3JtaW5nTWljcm90YXNrQ2hlY2twb2ludCwgdHJ1ZSk7CisgICAgU2V0Rm9yU2Nv
cGU8Ym9vbD4gY2hhbmdlKG1fcGVyZm9ybWluZ01pY3JvdGFza0NoZWNrcG9pbnQsIHRydWUpOwog
CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxNaWNyb3Rhc2s+PiBxdWV1ZSA9IFdURk1vdmUo
bV9taWNyb3Rhc2tRdWV1ZSk7CiAgICAgZm9yIChhdXRvJiB0YXNrIDogcXVldWUpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcAppbmRleCA1ZTVlZGExMzIzNGE0ZmI5NTNjMDU1NWQ5
N2JjYTAxNDg0ODA3MDlhLi5lYjYxYTM0NTE3MzY3NDRjZGVlM2NhMDZiNTZlZWRhYThhZGZjZTk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCkBAIC01Miw3ICs1Miw3IEBACiAj
aW5jbHVkZSAiU3ViZnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5
Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CiAK
QEAgLTI5MSw3ICsyOTEsNyBAQCBib29sIFBhZ2VDYWNoZTo6Y2FuQ2FjaGUoUGFnZSYgcGFnZSkg
Y29uc3QKIAogdm9pZCBQYWdlQ2FjaGU6OnBydW5lVG9TaXplTm93KHVuc2lnbmVkIHNpemUsIFBy
dW5pbmdSZWFzb24gcHJ1bmluZ1JlYXNvbikKIHsKLSAgICBUZW1wb3JhcnlDaGFuZ2U8dW5zaWdu
ZWQ+IGNoYW5nZShtX21heFNpemUsIHNpemUpOworICAgIFNldEZvclNjb3BlPHVuc2lnbmVkPiBj
aGFuZ2UobV9tYXhTaXplLCBzaXplKTsKICAgICBwcnVuZShwcnVuaW5nUmVhc29uKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCmluZGV4IGVjN2NjNDEwNDEyMzVhZjVmY2I5
OTYxODQ3NzY5ZDNlNTdmOGExMTQuLmIxYTU1Y2MyOTVlZWFjZWI0Mzg4NjA4MzlkOWZjMmVhNWIx
NGVjNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKQEAgLTMwLDcgKzMwLDcg
QEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiU3BhY2VTcGxpdFN0
cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFy
eUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVy
Lmg+CiAKQEAgLTI1Miw3ICsyNTIsNyBAQCB2b2lkIERPTVRva2VuTGlzdDo6dXBkYXRlQXNzb2Np
YXRlZEF0dHJpYnV0ZUZyb21Ub2tlbnMoKQogICAgIH0KICAgICBBdG9taWNTdHJpbmcgc2VyaWFs
aXplZFZhbHVlID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOwogCi0gICAgVGVtcG9yYXJ5Q2hh
bmdlPGJvb2w+IGluQXR0cmlidXRlVXBkYXRlKG1faW5VcGRhdGVBc3NvY2lhdGVkQXR0cmlidXRl
RnJvbVRva2VucywgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5BdHRyaWJ1dGVVcGRh
dGUobV9pblVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zLCB0cnVlKTsKICAgICBt
X2VsZW1lbnQuc2V0QXR0cmlidXRlKG1fYXR0cmlidXRlTmFtZSwgc2VyaWFsaXplZFZhbHVlKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNj
YW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIu
Y3BwCmluZGV4IGEwOWIxMzVmNjVmMmZhY2MyNjg5YzQ4MDc4MzkxNDJkOGE2ZDhiYWMuLmRmMzc0
MWI4NmIwMTQzYTNmNDFkYWFhYmExNDFhNjA0OTljMDkxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAKQEAgLTI5LDcgKzI5LDcgQEAK
ICNpbmNsdWRlICJDU1NQcmVsb2FkU2Nhbm5lci5oIgogCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklk
aW9tcy5oIgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYv
U2V0Rm9yU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Myw3ICs1Myw3IEBA
IHZvaWQgQ1NTUHJlbG9hZFNjYW5uZXI6OnJlc2V0KCkKIHZvaWQgQ1NTUHJlbG9hZFNjYW5uZXI6
OnNjYW4oY29uc3QgSFRNTFRva2VuOjpEYXRhVmVjdG9yJiBkYXRhLCBQcmVsb2FkUmVxdWVzdFN0
cmVhbSYgcmVxdWVzdHMpCiB7CiAgICAgQVNTRVJUKCFtX3JlcXVlc3RzKTsKLSAgICBUZW1wb3Jh
cnlDaGFuZ2U8UHJlbG9hZFJlcXVlc3RTdHJlYW0qPiBjaGFuZ2UobV9yZXF1ZXN0cywgJnJlcXVl
c3RzKTsKKyAgICBTZXRGb3JTY29wZTxQcmVsb2FkUmVxdWVzdFN0cmVhbSo+IGNoYW5nZShtX3Jl
cXVlc3RzLCAmcmVxdWVzdHMpOwogCiAgICAgZm9yIChVQ2hhciBjIDogZGF0YSkgewogICAgICAg
ICBpZiAobV9zdGF0ZSA9PSBEb25lUGFyc2luZ0ltcG9ydFJ1bGVzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKaW5kZXggMDJlOTNlOTQx
ZjdhOTNjYzVhZmNmNjVkMjVjNDM0YjAzZmIwYTAyMS4uMzNlMWJiODU2NjJkYWUxMzQ1YjU2Zjg4
MGU0NTQ5MTBiYjdjMGU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTENvbnN0cnVjdGlvblNpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MQ29uc3RydWN0aW9uU2l0ZS5oCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiSFRNTEZv
cm1hdHRpbmdFbGVtZW50TGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+Cisj
aW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNzAsNyArMTcwLDcgQEAgY2xhc3MgSFRNTENvbnN0cnVj
dGlvblNpdGUgewogICAgICAgICB7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFRlbXBvcmFy
eUNoYW5nZTxib29sPiBtX3JlZGlyZWN0QXR0YWNoVG9Gb3N0ZXJQYXJlbnRDaGFuZ2U7CisgICAg
ICAgIFNldEZvclNjb3BlPGJvb2w+IG1fcmVkaXJlY3RBdHRhY2hUb0Zvc3RlclBhcmVudENoYW5n
ZTsKICAgICB9OwogCiAgICAgc3RhdGljIGJvb2wgaXNGb3JtYXR0aW5nVGFnKGNvbnN0IEF0b21p
Y1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0NvbnRlbnRGaWx0
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0NvbnRlbnRGaWx0ZXIuY3BwCmluZGV4IDlh
YjQ5Mjk1NzEyZjk3NWE0OGViYzg0ZTYzYzkxYjI5MDVmYTc2MzcuLjZmMmU1MDM3NjVlMWEyZjEy
ZjI4ZmM2YzM4OWM4Y2RkMjY5YzIzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Db250ZW50RmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29udGVudEZp
bHRlci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0jaW5j
bHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogI2lmICFMT0dfRElTQUJMRUQKQEAgLTI5Miw3
ICsyOTIsNyBAQCB2b2lkIENvbnRlbnRGaWx0ZXI6OmhhbmRsZVByb3Zpc2lvbmFsTG9hZEZhaWx1
cmUoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
cmVwbGFjZW1lbnREYXRhIHsgbV9ibG9ja2luZ0NvbnRlbnRGaWx0ZXItPnJlcGxhY2VtZW50RGF0
YSgpIH07CiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSB7IFVSTCgpLCBBU0NJSUxpdGVy
YWwoInRleHQvaHRtbCIpLCByZXBsYWNlbWVudERhdGEtPnNpemUoKSwgQVNDSUlMaXRlcmFsKCJV
VEYtOCIpIH07CiAgICAgU3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEgeyBXVEZNb3ZlKHJl
cGxhY2VtZW50RGF0YSksIGVycm9yLmZhaWxpbmdVUkwoKSwgcmVzcG9uc2UsIFN1YnN0aXR1dGVE
YXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHk6OkhpZGRlbiB9OwotICAgIFRlbXBvcmFyeUNo
YW5nZTxib29sPiBsb2FkaW5nQmxvY2tlZFBhZ2UgeyBtX2lzTG9hZGluZ0Jsb2NrZWRQYWdlLCB0
cnVlIH07CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gbG9hZGluZ0Jsb2NrZWRQYWdlIHsgbV9pc0xv
YWRpbmdCbG9ja2VkUGFnZSwgdHJ1ZSB9OwogICAgIG1fZG9jdW1lbnRMb2FkZXIuZnJhbWVMb2Fk
ZXIoKS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KG1fZG9jdW1lbnRMb2FkZXIuZnJhbWUoKSwgYmxv
Y2tlZFBhZ2VVUkwoKSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxs
b3csIHN1YnN0aXR1dGVEYXRhKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVz
b3VyY2VMb2FkZXIuY3BwCmluZGV4IGMzM2E4YzlhODhlNzNkOGU5YjFlODc0MTc5N2QwYzgzNTg2
Zjk5MGQuLjZkMTYwNjczOTk2YzJjYzI5NDU2NmY1ZTk3M2YzNWNhZTI5NjZmZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApAQCAtNDUsOCArNDUsOCBA
QAogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvUmVm
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgorI2luY2x1ZGUgPHd0
Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNsdWRl
IDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
CiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL01lbW9yeUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlD
YWNoZS5jcHAKaW5kZXggMDY2ZjQ3ZTBiMTk2NzIxODVmY2ZhZWMwOTM2YjZmYmM2ZmE5MDllMy4u
ZDhkMzBkZmM0ZWU5MTAzYjM0ZGY4YTE3YmJkNDc1ZGQ4YTllODI3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCkBAIC00Myw3ICs0Myw3IEBACiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hh
bmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMTQsNyArMzE0LDcgQEAgdm9p
ZCBNZW1vcnlDYWNoZTo6cHJ1bmVMaXZlUmVzb3VyY2VzVG9TaXplKHVuc2lnbmVkIHRhcmdldFNp
emUsIGJvb2wgc2hvdWxkRGVzdHIKIHsKICAgICBpZiAobV9pblBydW5lUmVzb3VyY2VzKQogICAg
ICAgICByZXR1cm47Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHJlZW50cmFuY3lQcm90ZWN0
b3IobV9pblBydW5lUmVzb3VyY2VzLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiByZWVu
dHJhbmN5UHJvdGVjdG9yKG1faW5QcnVuZVJlc291cmNlcywgdHJ1ZSk7CiAKICAgICBkb3VibGUg
Y3VycmVudFRpbWUgPSBGcmFtZVZpZXc6OmN1cnJlbnRQYWludFRpbWVTdGFtcCgpOwogICAgIGlm
ICghY3VycmVudFRpbWUpIC8vIEluIGNhc2UgcHJ1bmUgaXMgY2FsbGVkIGRpcmVjdGx5LCBvdXRz
aWRlIG9mIGEgRnJhbWUgcGFpbnQuCkBAIC0zNzEsNyArMzcxLDcgQEAgdm9pZCBNZW1vcnlDYWNo
ZTo6cHJ1bmVEZWFkUmVzb3VyY2VzVG9TaXplKHVuc2lnbmVkIHRhcmdldFNpemUpCiB7CiAgICAg
aWYgKG1faW5QcnVuZVJlc291cmNlcykKICAgICAgICAgcmV0dXJuOwotICAgIFRlbXBvcmFyeUNo
YW5nZTxib29sPiByZWVudHJhbmN5UHJvdGVjdG9yKG1faW5QcnVuZVJlc291cmNlcywgdHJ1ZSk7
CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gcmVlbnRyYW5jeVByb3RlY3RvcihtX2luUHJ1bmVSZXNv
dXJjZXMsIHRydWUpOwogIAogICAgIGlmICh0YXJnZXRTaXplICYmIG1fZGVhZFNpemUgPD0gdGFy
Z2V0U2l6ZSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IGU4MjMz
NTIxYzVkYTY1NWQ4M2I3MTY0Y2VhYThjNTI5NzlmZjBiNzkuLmQ5ZWFjMDA5YjU2YjljMWY4N2M5
OTRmNDdhNDcwODYxMTc1ZjZiZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTUxLDcgKzUx
LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL1ZNLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5n
ZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpAQCAtMjIyLDcgKzIyMiw3IEBAIHZv
aWQgQ2hyb21lOjpydW5Nb2RhbCgpIGNvbnN0CiAKICAgICAvLyBKYXZhU2NyaXB0IHRoYXQgcnVu
cyB3aXRoaW4gdGhlIG5lc3RlZCBldmVudCBsb29wIG11c3Qgbm90IGJlIHJ1biBpbiB0aGUgY29u
dGV4dCBvZiB0aGUKICAgICAvLyBzY3JpcHQgdGhhdCBjYWxsZWQgc2hvd01vZGFsRGlhbG9nLiBO
dWxsIG91dCBlbnRyeVNjb3BlIHRvIGJyZWFrIHRoZSBjb25uZWN0aW9uLgotICAgIFRlbXBvcmFy
eUNoYW5nZTxKU0M6OlZNRW50cnlTY29wZSo+IGVudHJ5U2NvcGVOdWxsaWZpZXIgeyBtX3BhZ2Uu
bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+dm0oKS5lbnRyeVNjb3BlLCBudWxscHRyIH07CisgICAg
U2V0Rm9yU2NvcGU8SlNDOjpWTUVudHJ5U2NvcGUqPiBlbnRyeVNjb3BlTnVsbGlmaWVyIHsgbV9w
YWdlLm1haW5GcmFtZSgpLmRvY3VtZW50KCktPnZtKCkuZW50cnlTY29wZSwgbnVsbHB0ciB9Owog
CiAgICAgVGltZXJCYXNlOjpmaXJlVGltZXJzSW5OZXN0ZWRFdmVudExvb3AoKTsKICAgICBtX2Ns
aWVudC5ydW5Nb2RhbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDJlZjU4Mzhh
YjM0NGE4YmI5MmE0Y2VjY2JkMWMyNTZiNjMyODZjYzkuLmZmZTYyMGI5N2UzZjQ3N2EyNjRmZTM4
MDBiMTZjMTY3NGZiNmM1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTk5LDgg
Kzk5LDggQEAKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3lzdGVt
VHJhY2luZy5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KIAogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKICNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9yZS5oIgpAQCAt
MTI4OCwxMCArMTI4OCwxMCBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0
cmVlKQogCiAgICAgLy8gTWFueSBvZiB0aGUgdGFza3MgcGVyZm9ybWVkIGR1cmluZyBsYXlvdXQg
Y2FuIGNhdXNlIHRoaXMgZnVuY3Rpb24gdG8gYmUgcmUtZW50ZXJlZCwKICAgICAvLyBzbyBzYXZl
IHRoZSBsYXlvdXQgcGhhc2Ugbm93IGFuZCByZXN0b3JlIGl0IG9uIGV4aXQuCi0gICAgVGVtcG9y
YXJ5Q2hhbmdlPExheW91dFBoYXNlPiBsYXlvdXRQaGFzZVJlc3RvcmVyKG1fbGF5b3V0UGhhc2Us
IEluUHJlTGF5b3V0KTsKKyAgICBTZXRGb3JTY29wZTxMYXlvdXRQaGFzZT4gbGF5b3V0UGhhc2VS
ZXN0b3JlcihtX2xheW91dFBoYXNlLCBJblByZUxheW91dCk7CiAKICAgICAvLyBFdmVyeSBzY3Jv
bGwgdGhhdCBoYXBwZW5zIGR1cmluZyBsYXlvdXQgaXMgcHJvZ3JhbW1hdGljLgotICAgIFRlbXBv
cmFyeUNoYW5nZTxib29sPiBjaGFuZ2VJblByb2dyYW1tYXRpY1Njcm9sbChtX2luUHJvZ3JhbW1h
dGljU2Nyb2xsLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2VJblByb2dyYW1t
YXRpY1Njcm9sbChtX2luUHJvZ3JhbW1hdGljU2Nyb2xsLCB0cnVlKTsKIAogICAgIGJvb2wgaW5D
aGlsZEZyYW1lTGF5b3V0V2l0aEZyYW1lRmxhdHRlbmluZyA9IGlzSW5DaGlsZEZyYW1lV2l0aEZy
YW1lRmxhdHRlbmluZygpOwogCkBAIC0xMzMxLDEyICsxMzMxLDEyIEBAIHZvaWQgRnJhbWVWaWV3
OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgQVNTRVJUKGRvY3VtZW50LnBhZ2VDYWNo
ZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKIAogICAgIHsKLSAgICAgICAg
VGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZVNjaGVkdWxpbmdFbmFibGVkKG1fbGF5b3V0U2No
ZWR1bGluZ0VuYWJsZWQsIGZhbHNlKTsKKyAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdl
U2NoZWR1bGluZ0VuYWJsZWQobV9sYXlvdXRTY2hlZHVsaW5nRW5hYmxlZCwgZmFsc2UpOwogCiAg
ICAgICAgIGlmICghbV9uZXN0ZWRMYXlvdXRDb3VudCAmJiAhbV9pblN5bmNocm9ub3VzUG9zdExh
eW91dCAmJiBtX3Bvc3RMYXlvdXRUYXNrc1RpbWVyLmlzQWN0aXZlKCkgJiYgIWluQ2hpbGRGcmFt
ZUxheW91dFdpdGhGcmFtZUZsYXR0ZW5pbmcpIHsKICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBu
ZXcgdG9wLWxldmVsIGxheW91dC4gSWYgdGhlcmUgYXJlIGFueSByZW1haW5pbmcgdGFza3MgZnJv
bSB0aGUgcHJldmlvdXMKICAgICAgICAgICAgIC8vIGxheW91dCwgZmluaXNoIHRoZW0gbm93Lgot
ICAgICAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGluU3luY2hyb25vdXNQb3N0TGF5b3V0
Q2hhbmdlKG1faW5TeW5jaHJvbm91c1Bvc3RMYXlvdXQsIHRydWUpOworICAgICAgICAgICAgU2V0
Rm9yU2NvcGU8Ym9vbD4gaW5TeW5jaHJvbm91c1Bvc3RMYXlvdXRDaGFuZ2UobV9pblN5bmNocm9u
b3VzUG9zdExheW91dCwgdHJ1ZSk7CiAgICAgICAgICAgICBwZXJmb3JtUG9zdExheW91dFRhc2tz
KCk7CiAgICAgICAgIH0KIApAQCAtMTM3OCw3ICsxMzc4LDcgQEAgdm9pZCBGcmFtZVZpZXc6Omxh
eW91dChib29sIGFsbG93U3VidHJlZSkKICAgICArK21fbmVzdGVkTGF5b3V0Q291bnQ7CiAKICAg
ICB7Ci0gICAgICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2VTY2hlZHVsaW5nRW5hYmxl
ZChtX2xheW91dFNjaGVkdWxpbmdFbmFibGVkLCBmYWxzZSk7CisgICAgICAgIFNldEZvclNjb3Bl
PGJvb2w+IGNoYW5nZVNjaGVkdWxpbmdFbmFibGVkKG1fbGF5b3V0U2NoZWR1bGluZ0VuYWJsZWQs
IGZhbHNlKTsKIAogICAgICAgICBhdXRvU2l6ZUlmRW5hYmxlZCgpOwogCkBAIC0xNTUwLDcgKzE1
NTAsNyBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0cmVlKQogICAgICAg
ICAgICAgaWYgKGluQ2hpbGRGcmFtZUxheW91dFdpdGhGcmFtZUZsYXR0ZW5pbmcpCiAgICAgICAg
ICAgICAgICAgdXBkYXRlV2lkZ2V0UG9zaXRpb25zKCk7CiAgICAgICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gaW5TeW5jaHJvbm91c1Bvc3RMYXlv
dXRDaGFuZ2UobV9pblN5bmNocm9ub3VzUG9zdExheW91dCwgdHJ1ZSk7CisgICAgICAgICAgICAg
ICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5TeW5jaHJvbm91c1Bvc3RMYXlvdXRDaGFuZ2UobV9pblN5
bmNocm9ub3VzUG9zdExheW91dCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgcGVyZm9ybVBvc3RM
YXlvdXRUYXNrcygpOyAvLyBDYWxscyByZXN1bWVTY2hlZHVsZWRFdmVudHMoKS4KICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpAQCAtMjM1OSw3ICsyMzU5LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNj
cm9sbEVsZW1lbnRUb1JlY3QoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UmVjdCYg
cmVjdCkKIAogdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBv
c2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKIHsKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hh
bmdlSW5Qcm9ncmFtbWF0aWNTY3JvbGwobV9pblByb2dyYW1tYXRpY1Njcm9sbCwgdHJ1ZSk7Cisg
ICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlSW5Qcm9ncmFtbWF0aWNTY3JvbGwobV9pblByb2dy
YW1tYXRpY1Njcm9sbCwgdHJ1ZSk7CiAgICAgbV9tYWludGFpblNjcm9sbFBvc2l0aW9uQW5jaG9y
ID0gbnVsbHB0cjsKICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CiAgICAgaWYgKHBh
Z2UgJiYgcGFnZS0+ZXhwZWN0c1doZWVsRXZlbnRUcmlnZ2VycygpKQpAQCAtMjQ2NSw3ICsyNDY1
LDcgQEAgdm9pZCBGcmFtZVZpZXc6OmFwcGx5UmVjdXJzaXZlbHlXaXRoVmlzaWJsZVJlY3QoY29u
c3Qgc3RkOjpmdW5jdGlvbjx2b2lkIChGcmFtZVYKICAgICBhcHBseSgqdGhpcywgdmlzaWJsZVJl
Y3QpOwogCiAgICAgLy8gUmVjdXJzaXZlIGNhbGwgZm9yIHN1YmZyYW1lcy4gV2UgY2FjaGUgdGhl
IGN1cnJlbnQgRnJhbWVWaWV3J3Mgd2luZG93Q2xpcFJlY3QgdG8gYXZvaWQgcmVjb21wdXRpbmcg
aXQgZm9yIGV2ZXJ5IHN1YmZyYW1lLgotICAgIFRlbXBvcmFyeUNoYW5nZTxJbnRSZWN0Kj4gd2lu
ZG93Q2xpcFJlY3RDYWNoZShtX2NhY2hlZFdpbmRvd0NsaXBSZWN0LCAmd2luZG93Q2xpcFJlY3Qp
OworICAgIFNldEZvclNjb3BlPEludFJlY3QqPiB3aW5kb3dDbGlwUmVjdENhY2hlKG1fY2FjaGVk
V2luZG93Q2xpcFJlY3QsICZ3aW5kb3dDbGlwUmVjdCk7CiAgICAgZm9yIChGcmFtZSogY2hpbGRG
cmFtZSA9IGZyYW1lKCkudHJlZSgpLmZpcnN0Q2hpbGQoKTsgY2hpbGRGcmFtZTsgY2hpbGRGcmFt
ZSA9IGNoaWxkRnJhbWUtPnRyZWUoKS5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChhdXRv
KiBjaGlsZFZpZXcgPSBjaGlsZEZyYW1lLT52aWV3KCkpCiAgICAgICAgICAgICBjaGlsZFZpZXct
PmFwcGx5UmVjdXJzaXZlbHlXaXRoVmlzaWJsZVJlY3QoYXBwbHkpOwpAQCAtMzUzOSw3ICszNTM5
LDcgQEAgdm9pZCBGcmFtZVZpZXc6OmF1dG9TaXplSWZFbmFibGVkKCkKIAogICAgIExPRyhMYXlv
dXQsICJGcmFtZVZpZXcgJXAgYXV0b1NpemVJZkVuYWJsZWQiLCB0aGlzKTsKIAotICAgIFRlbXBv
cmFyeUNoYW5nZTxib29sPiBjaGFuZ2VJbkF1dG9TaXplKG1faW5BdXRvU2l6ZSwgdHJ1ZSk7Cisg
ICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlSW5BdXRvU2l6ZShtX2luQXV0b1NpemUsIHRydWUp
OwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpOwogICAgIGlm
ICghZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50
U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmNwcAppbmRleCA0ZGQ2N2UxZjBjNzEyMmY5M2Y3ZjdiZDExYmRiZWExYjU0ZGQ2
MzBhLi41YzhiZjEzYTQwMTFmMGZiNmYxMjNkMDY0MTgwODVhZWE1OTM2YzZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTU3
LDcgKzU3LDcgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5j
bHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9T
Y3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5o
PgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KIApAQCAtMTQ3
LDcgKzE0Nyw3IEBAIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OnJlc3BvbnNlSGVhZGVycygpIGNvCiAKIHZvaWQgQ29udGVudFNlY3Vy
aXR5UG9saWN5OjpkaWRSZWNlaXZlSGVhZGVycyhjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMmIGhlYWRlcnMsIFJlcG9ydFBhcnNpbmdFcnJvcnMgcmVwb3J0UGFyc2lu
Z0Vycm9ycykKIHsKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gaXNSZXBvcnRpbmdFbmFibGVk
KG1faXNSZXBvcnRpbmdFbmFibGVkLCByZXBvcnRQYXJzaW5nRXJyb3JzID09IFJlcG9ydFBhcnNp
bmdFcnJvcnM6Olllcyk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNSZXBvcnRpbmdFbmFibGVk
KG1faXNSZXBvcnRpbmdFbmFibGVkLCByZXBvcnRQYXJzaW5nRXJyb3JzID09IFJlcG9ydFBhcnNp
bmdFcnJvcnM6Olllcyk7CiAgICAgZm9yIChhdXRvJiBoZWFkZXIgOiBoZWFkZXJzLm1faGVhZGVy
cykKICAgICAgICAgZGlkUmVjZWl2ZUhlYWRlcihoZWFkZXIuZmlyc3QsIGhlYWRlci5zZWNvbmQs
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6UG9saWN5RnJvbTo6SFRUUEhlYWRlcik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4IDY0
M2JiZGI5YmZiZWYwODYwYWY1MzE4ZTU0ZWU2ODhiZWFjYzFhMDUuLjcxMzdjNTlhMzM5YWMzMDJj
ZjBkMjc1ZmNlN2E0M2FiY2IwMDY5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSAiU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmgiCiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgotI2luY2x1ZGUgPHd0
Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
Ojpjb21taXRUcmVlU3RhdGUoc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4gc2Ny
b2xsaW4KICAgICB9CiAgICAgCiAgICAgYm9vbCBzY3JvbGxSZXF1ZXN0SXNQcm9nYW1tYXRpYyA9
IHJvb3ROb2RlID8gcm9vdE5vZGUtPnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1By
b2dyYW1tYXRpY1Njcm9sbCgpIDogZmFsc2U7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNo
YW5nZUhhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKG1faXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Nj
cm9sbCwgc2Nyb2xsUmVxdWVzdElzUHJvZ2FtbWF0aWMpOworICAgIFNldEZvclNjb3BlPGJvb2w+
IGNoYW5nZUhhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKG1faXNIYW5kbGluZ1Byb2dyYW1tYXRp
Y1Njcm9sbCwgc2Nyb2xsUmVxdWVzdElzUHJvZ2FtbWF0aWMpOwogCiAgICAgcmVtb3ZlRGVzdHJv
eWVkTm9kZXMoKnNjcm9sbGluZ1N0YXRlVHJlZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IGE4YTE0
ZWY4MGU3Y2RiMTdkNTJlNGU0YWY0YTQzNzM3NjIyYTRhMTcuLjY1OTgwMjBhN2MzNTE5OTM0Njkz
OTgzZTcwOGExMjIxZTY2NjRiZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtNTAsOCArNTAsOCBAQAog
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNj
b3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4KLSNpbmNsdWRlIDx3dGYvVGVt
cG9yYXJ5Q2hhbmdlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQ
TEFURk9STShJT1MpCkBAIC0xNTM0LDcgKzE1MzQsNyBAQCBzdGF0aWMgYm9vbCBpc0N1c3RvbUJh
Y2tkcm9wTGF5ZXJUeXBlKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIGxheWVyVHlwZSkKIAog
dm9pZCBHcmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhD
b21taXRTdGF0ZSYgY29tbWl0U3RhdGUsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgY29uc3QgRmxv
YXRQb2ludCYgcG9zaXRpb25SZWxhdGl2ZVRvQmFzZSkKIHsKLSAgICBUZW1wb3JhcnlDaGFuZ2U8
Ym9vbD4gY29tbWl0dGluZ0NoYW5nZXNDaGFuZ2UobV9pc0NvbW1pdHRpbmdDaGFuZ2VzLCB0cnVl
KTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjb21taXR0aW5nQ2hhbmdlc0NoYW5nZShtX2lzQ29t
bWl0dGluZ0NoYW5nZXMsIHRydWUpOwogCiAgICAgKytjb21taXRTdGF0ZS50cmVlRGVwdGg7CiAg
ICAgaWYgKG1fc3RydWN0dXJhbExheWVyKQpAQCAtMTY4OCw3ICsxNjg4LDcgQEAgdm9pZCBHcmFw
aGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0FmdGVyU3VibGF5ZXJzKENvbW1pdFN0YXRl
JiBjb21taXRTdGF0ZSkKICAgICBpZiAoIW1fdW5jb21taXR0ZWRDaGFuZ2VzKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY29tbWl0dGluZ0NoYW5nZXNDaGFu
Z2UobV9pc0NvbW1pdHRpbmdDaGFuZ2VzLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBj
b21taXR0aW5nQ2hhbmdlc0NoYW5nZShtX2lzQ29tbWl0dGluZ0NoYW5nZXMsIHRydWUpOwogCiAg
ICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgTWFza0xheWVyQ2hhbmdlZCkKICAgICAgICAg
dXBkYXRlTWFza0xheWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvVGVtcG9yYXJ5T3BlbkdMU2V0dGluZy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RlbXBvcmFyeU9wZW5HTFNldHRpbmcuaAppbmRleCA4
MzNmOGI2YmU2NWQzNzk1NjBiMDJkZDZjOTA3NjkwODVhODUyODM4Li5jYjUxNjk1YjcxZGI3NTI3
NmFiMTQzODYzY2VhYjdjN2I3YzE2N2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9yYXJ5T3BlbkdMU2V0dGluZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZW1wb3JhcnlPcGVuR0xTZXR0aW5n
LmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gdmFsdWUgdXBvbiBk
ZXN0cnVjdGlvbiwgbWFraW5nIGl0IGFuIGFsdGVybmF0aXZlIHRvIGNoZWNraW5nLCBjbGVhcmlu
ZywgYW5kIHJlc2V0dGluZyBlYWNoIGZsYWcKIC8vIGF0IGFsbCBvZiBhIGJsb2NrJ3MgZXhpdCBw
b2ludHMuCiAvLwotLy8gQmFzZWQgb24gV1RGOjpUZW1wb3JhcnlDaGFuZ2U8PgorLy8gQmFzZWQg
b24gV1RGOjpTZXRGb3JTY29wZTw+CiAKIGNsYXNzIFRlbXBvcmFyeU9wZW5HTFNldHRpbmcgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRlbXBvcmFyeU9wZW5HTFNldHRpbmcpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdMLmNwcAppbmRleCBmMTEyMWE1YjE5NmNjYzdjY2YzNWE4MGE3NDg5OWUyM2FhMTAy
M2UzLi4yMTdiYTVkY2FiNDQxNzA3MGEwNGI3MzA0MGRiZWE1MzFhY2RkNWYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdM
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdMLmNwcApAQCAtMzgsNyArMzgsNyBAQAogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3Rm
L1NldEZvclNjb3BlLmg+CiAKICNpZiBVU0UoQ0FJUk8pCiAjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRp
ZXMuaCIKQEAgLTQxMiw3ICs0MTIsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1
cmUoY29uc3QgQml0bWFwVGV4dHVyZSYgdGV4dHVyZSwgY29uc3QgRmxvYXRSZWN0JgogICAgICAg
ICByZXR1cm47CiAKICAgICBjb25zdCBCaXRtYXBUZXh0dXJlR0wmIHRleHR1cmVHTCA9IHN0YXRp
Y19jYXN0PGNvbnN0IEJpdG1hcFRleHR1cmVHTCY+KHRleHR1cmUpOwotICAgIFRlbXBvcmFyeUNo
YW5nZTxjb25zdCBCaXRtYXBUZXh0dXJlR0w6OkZpbHRlckluZm8qPiBmaWx0ZXJJbmZvKGRhdGEo
KS5maWx0ZXJJbmZvLCB0ZXh0dXJlR0wuZmlsdGVySW5mbygpKTsKKyAgICBTZXRGb3JTY29wZTxj
b25zdCBCaXRtYXBUZXh0dXJlR0w6OkZpbHRlckluZm8qPiBmaWx0ZXJJbmZvKGRhdGEoKS5maWx0
ZXJJbmZvLCB0ZXh0dXJlR0wuZmlsdGVySW5mbygpKTsKIAogICAgIGRyYXdUZXh0dXJlKHRleHR1
cmVHTC5pZCgpLCB0ZXh0dXJlR0wuaXNPcGFxdWUoKSA/IDAgOiBTaG91bGRCbGVuZCwgdGV4dHVy
ZUdMLnNpemUoKSwgdGFyZ2V0UmVjdCwgbWF0cml4LCBvcGFjaXR5LCBleHBvc2VkRWRnZXMpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcAppbmRleCA3NDhhZDhlOWUzODBhM2VlNzJhNmEwMjE1ODI0ZWY4ZDQxN2VjMzEwLi42
MGU2MzMyNzQwOWUyMDI5ZjEzODA5NDhmMmYxZmZhN2E5MWYxNDFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtMzIs
NyArMzIsNyBAQAogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CiAjaWZuZGVmIE5ERUJVRwotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFu
Z2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNlbmRpZgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMTA0MSw3ICsxMDQxLDcgQEAgdm9pZCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZUNvbnRlbnRCdWZmZXJzKCkKIHZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpwdXJnZUJhY2tpbmdTdG9yZXMoKQogewogI2lmbmRlZiBOREVCVUcKLSAg
ICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gdXBkYXRlTW9kZVByb3RlY3RvcihtX2lzUHVyZ2luZywg
dHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gdXBkYXRlTW9kZVByb3RlY3RvcihtX2lzUHVy
Z2luZywgdHJ1ZSk7CiAjZW5kaWYKICAgICBtX21haW5CYWNraW5nU3RvcmUgPSBudWxscHRyOwog
ICAgIG1fcHJldmlvdXNCYWNraW5nU3RvcmUgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzTGF5ZXJEaXJlY3QyRC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NMYXllckRpcmVj
dDJELmNwcAppbmRleCBmOTJjMTI3OGQwOGY0NWNhZTVlZDg1NDNmOWM4YjViNDlhNmRiMDM4Li41
NTYyMjM5NTU1OWE2N2RiZjMxZmI4YjFiYTM1Njg4MjQ0NjE2YjY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NMYXllckRpcmVjdDJELmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NMYXll
ckRpcmVjdDJELmNwcApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N5
c3RlbVRyYWNpbmcuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCmluZGV4IGE1NDU5ZDljZGE1OWY1NTIzYmQ1ZWIx
OWIxMTg1ZTQwYTk3NjAzNTMuLmYwYjNhNWE3MzVjOGVkZTEwODRmNzhjMDAxOThhNTk3MDY3ZGVk
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVs
cGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBl
ci5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5j
bHVkZSAiU2VsZWN0aW9uRGF0YS5oIgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3
dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5j
bHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIApAQCAtMjg5LDcgKzI4OSw3IEBAIHZvaWQgUGFzdGVib2FyZEhlbHBlcjo6d3JpdGVDbGlw
Ym9hcmRDb250ZW50cyhHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgY29uc3QgU2VsCiAgICAgR3Rr
VGFyZ2V0RW50cnkqIHRhYmxlID0gZ3RrX3RhcmdldF90YWJsZV9uZXdfZnJvbV9saXN0KGxpc3Qu
Z2V0KCksICZudW1iZXJPZlRhcmdldHMpOwogCiAgICAgaWYgKG51bWJlck9mVGFyZ2V0cyA+IDAg
JiYgdGFibGUpIHsKLSAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPFNlbGVjdGlvbkRhdGEqPiBjaGFu
Z2Uoc2V0dGluZ0NsaXBib2FyZFNlbGVjdGlvbiwgY29uc3RfY2FzdDxTZWxlY3Rpb25EYXRhKj4o
JnNlbGVjdGlvbikpOworICAgICAgICBTZXRGb3JTY29wZTxTZWxlY3Rpb25EYXRhKj4gY2hhbmdl
KHNldHRpbmdDbGlwYm9hcmRTZWxlY3Rpb24sIGNvbnN0X2Nhc3Q8U2VsZWN0aW9uRGF0YSo+KCZz
ZWxlY3Rpb24pKTsKICAgICAgICAgYXV0byBkYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxDbGlwYm9h
cmRTZXREYXRhPigqc2V0dGluZ0NsaXBib2FyZFNlbGVjdGlvbiwgV1RGTW92ZShwcmltYXJ5U2Vs
ZWN0aW9uQ2xlYXJlZCkpOwogICAgICAgICBpZiAoZ3RrX2NsaXBib2FyZF9zZXRfd2l0aF9kYXRh
KGNsaXBib2FyZCwgdGFibGUsIG51bWJlck9mVGFyZ2V0cywgZ2V0Q2xpcGJvYXJkQ29udGVudHND
YWxsYmFjaywgY2xlYXJDbGlwYm9hcmRDb250ZW50c0NhbGxiYWNrLCBkYXRhLmdldCgpKSkgewog
ICAgICAgICAgICAgZ3RrX2NsaXBib2FyZF9zZXRfY2FuX3N0b3JlKGNsaXBib2FyZCwgbnVsbHB0
ciwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFy
VGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVN
YWMubW0KaW5kZXggMTUwZmFiZThlMzc3NGYwNjI1Zjg1OTY2NGNhZjc4NzRjYzdjNjVhOS4uYjJl
MTYxOGMwMzJmYjdjNjVmMWZlMTkxN2YyMDRlMjk2NzRjMzg5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtNDAsOCArNDAsOCBA
QAogI2luY2x1ZGUgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
U2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0jaW5jbHVkZSA8
d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgogCiAvLyBGSVhNRTogVGhlcmUgYXJlIHJlcGFpbnRpbmcg
cHJvYmxlbXMgZHVlIHRvIEFxdWEgc2Nyb2xsIGJhciBidXR0b25zJyB2aXN1YWwgb3ZlcmZsb3cu
CiAKQEAgLTU0OSw3ICs1NDksNyBAQCBib29sIFNjcm9sbGJhclRoZW1lTWFjOjpwYWludChTY3Jv
bGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjbwogICAgIGlmIChz
Y3JvbGxiYXIuc3VwcG9ydHNVcGRhdGVPblNlY29uZGFyeVRocmVhZCgpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBpc0N1cnJlbnRseURyYXdpbmdJ
bnRvTGF5ZXIoZ19pc0N1cnJlbnRseURyYXdpbmdJbnRvTGF5ZXIsIGNvbnRleHQuaXNDQUxheWVy
Q29udGV4dCgpKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBpc0N1cnJlbnRseURyYXdpbmdJbnRv
TGF5ZXIoZ19pc0N1cnJlbnRseURyYXdpbmdJbnRvTGF5ZXIsIGNvbnRleHQuaXNDQUxheWVyQ29u
dGV4dCgpKTsKICAgICAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIo
Y29udGV4dCk7CiAgICAgY29udGV4dC5jbGlwKGRhbWFnZVJlY3QpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZmU2ODFkOGIyMWRmZDBhMDhhYzdkZGFjM2Iz
YmViYmU4YjM2ZTRjYy4uODUxYTA0NzRlODRjNzE1MTliY2RiMjNjMTNjZTk5YmNhYTE5NDBiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC03Myw4ICs3Myw4
IEBACiAKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3Rh
Y2tTdGF0cy5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdURjsKIHVzaW5nIG5hbWVzcGFjZSBVbmljb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAKaW5kZXggYjk1OTMzZmUwMTkyZWUyNmQz
NjE3YjZiM2FlZjRlYWFkNmFlMWM2Ny4uZmM3YjgxOGIyNGZiOTExNTIxNDBhYWYzYzEwNDk3NDQw
YWE4NDBiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21l
dHJ5TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlN
YXAuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKLSNpbmNsdWRl
IDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTQxLDcgKzE0MSw3IEBAIEZsb2F0UXVhZCBSZW5k
ZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWluZXIoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25z
dCBSZW5kZXJMCiB2b2lkIFJlbmRlckdlb21ldHJ5TWFwOjpwdXNoTWFwcGluZ3NUb0FuY2VzdG9y
KGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIGFuY2VzdG9yUmVuZGVyZXIpCiB7CiAgICAgLy8gV2UgbmVlZCB0byBwdXNoIG1hcHBpbmdz
IGluIHJldmVyc2Ugb3JkZXIgaGVyZSwgc28gZG8gaW5zZXJ0aW9ucyByYXRoZXIgdGhhbiBhcHBl
bmRzLgotICAgIFRlbXBvcmFyeUNoYW5nZTxzaXplX3Q+IHBvc2l0aW9uQ2hhbmdlKG1faW5zZXJ0
aW9uUG9zaXRpb24sIG1fbWFwcGluZy5zaXplKCkpOworICAgIFNldEZvclNjb3BlPHNpemVfdD4g
cG9zaXRpb25DaGFuZ2UobV9pbnNlcnRpb25Qb3NpdGlvbiwgbV9tYXBwaW5nLnNpemUoKSk7CiAg
ICAgZG8gewogICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5wdXNoTWFwcGluZ1RvQ29udGFp
bmVyKGFuY2VzdG9yUmVuZGVyZXIsICp0aGlzKTsKICAgICB9IHdoaWxlIChyZW5kZXJlciAmJiBy
ZW5kZXJlciAhPSBhbmNlc3RvclJlbmRlcmVyKTsKQEAgLTE3NSw3ICsxNzUsNyBAQCBzdGF0aWMg
Ym9vbCBjYW5NYXBCZXR3ZWVuUmVuZGVyZXJzVmlhTGF5ZXJzKGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QmIHJlbmRlcgogdm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6cHVzaE1hcHBpbmdzVG9B
bmNlc3Rvcihjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiBhbmNl
c3RvckxheWVyLCBib29sIHJlc3BlY3RUcmFuc2Zvcm1zKQogewogICAgIE1hcENvb3JkaW5hdGVz
RmxhZ3MgbmV3RmxhZ3MgPSByZXNwZWN0VHJhbnNmb3JtcyA/IG1fbWFwQ29vcmRpbmF0ZXNGbGFn
cyA6IG1fbWFwQ29vcmRpbmF0ZXNGbGFncyAmIH5Vc2VUcmFuc2Zvcm1zOwotICAgIFRlbXBvcmFy
eUNoYW5nZTxNYXBDb29yZGluYXRlc0ZsYWdzPiBmbGFnc0NoYW5nZShtX21hcENvb3JkaW5hdGVz
RmxhZ3MsIG5ld0ZsYWdzKTsKKyAgICBTZXRGb3JTY29wZTxNYXBDb29yZGluYXRlc0ZsYWdzPiBm
bGFnc0NoYW5nZShtX21hcENvb3JkaW5hdGVzRmxhZ3MsIG5ld0ZsYWdzKTsKIAogICAgIGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJlbmRlcmVyID0gbGF5ZXItPnJlbmRlcmVyKCk7CiAK
QEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lkIFJlbmRlckdlb21ldHJ5TWFwOjpwdXNoTWFwcGluZ3NU
b0FuY2VzdG9yKGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgY29uc3QgUgogICAgICAgICAgICAg
cHVzaE1hcHBpbmdzVG9BbmNlc3RvcigmYW5jZXN0b3JMYXllci0+cmVuZGVyZXIoKSwgbnVsbHB0
cik7CiAgICAgICAgIH0KIAotICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8c2l6ZV90PiBwb3NpdGlv
bkNoYW5nZShtX2luc2VydGlvblBvc2l0aW9uLCBtX21hcHBpbmcuc2l6ZSgpKTsKKyAgICAgICAg
U2V0Rm9yU2NvcGU8c2l6ZV90PiBwb3NpdGlvbkNoYW5nZShtX2luc2VydGlvblBvc2l0aW9uLCBt
X21hcHBpbmcuc2l6ZSgpKTsKICAgICAgICAgcHVzaCgmcmVuZGVyZXIsIGxheWVyT2Zmc2V0LCAv
KmFjY3VtdWxhdGluZ1RyYW5zZm9ybSovIHRydWUsIC8qaXNOb25Vbmlmb3JtKi8gZmFsc2UsIC8q
aXNGaXhlZFBvc2l0aW9uKi8gZmFsc2UsIC8qaGFzVHJhbnNmb3JtKi8gZmFsc2UpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
aW5kZXggOTRlYzY3M2M0NzI3M2ZlNmQzYzQ3ZmVkMTFmYWY5ODkzZWQyNTZlYy4uNWJiY2MwMDM5
MDVhYWI5YTY4NzY1YWY3YzdjZTgyZGVjNjE3NGRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC01NzcsNyArNTc3LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6
dXBkYXRlTGF5ZXJQb3NpdGlvbnMoUmVuZGVyR2VvbWV0cnlNYXAqIGdlb21ldHJ5TWFwLCBVcGRh
dGVMYXkKICAgICAgICAgCiAgICAgLy8gV2l0aCBhbGwgb3VyIGNoaWxkcmVuIHBvc2l0aW9uZWQs
IG5vdyB1cGRhdGUgb3VyIG1hcnF1ZWUgaWYgd2UgbmVlZCB0by4KICAgICBpZiAobV9tYXJxdWVl
KSB7Ci0gICAgICAgIC8vIEZJWE1FOiB3b3VsZCBsaWtlIHRvIHVzZSBUZW1wb3JhcnlDaGFuZ2U8
PiBidXQgaXQgZG9lc24ndCB3b3JrIHdpdGggYml0ZmllbGRzLgorICAgICAgICAvLyBGSVhNRTog
d291bGQgbGlrZSB0byB1c2UgU2V0Rm9yU2NvcGU8PiBidXQgaXQgZG9lc24ndCB3b3JrIHdpdGgg
Yml0ZmllbGRzLgogICAgICAgICBib29sIG9sZFVwZGF0aW5nTWFycXVlZVBvc2l0aW9uID0gbV91
cGRhdGluZ01hcnF1ZWVQb3NpdGlvbjsKICAgICAgICAgbV91cGRhdGluZ01hcnF1ZWVQb3NpdGlv
biA9IHRydWU7CiAgICAgICAgIG1fbWFycXVlZS0+dXBkYXRlTWFycXVlZVBvc2l0aW9uKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
CmluZGV4IDQwYTcwNDI5ZDA1N2E1ODE4MGVkYjA4ZjQ2ZmM3ZmZlNmE3MjEzZTkuLmZjNGExMTY0
MGNiZTNmYTAzNDE4OWIwY2M5Mzc2Njk4NTc2Y2EwMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC02Myw3ICs2Myw3IEBA
CiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hh
bmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtNjgw
LDcgKzY4MCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGlu
Z0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZVR5cGUgdXBkYXRlCiAKICAgICBBbmltYXRpb25VcGRh
dGVCbG9jayBhbmltYXRpb25VcGRhdGVCbG9jaygmbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLmZy
YW1lKCkuYW5pbWF0aW9uKCkpOwogCi0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHBvc3RMYXlv
dXRDaGFuZ2UobV9pblBvc3RMYXlvdXRVcGRhdGUsIHRydWUpOworICAgIFNldEZvclNjb3BlPGJv
b2w+IHBvc3RMYXlvdXRDaGFuZ2UobV9pblBvc3RMYXlvdXRVcGRhdGUsIHRydWUpOwogICAgIAog
ICAgIGJvb2wgY2hlY2tGb3JIaWVyYXJjaHlVcGRhdGUgPSBtX3JlZXZhbHVhdGVDb21wb3NpdGlu
Z0FmdGVyTGF5b3V0OwogICAgIGJvb2wgbmVlZEdlb21ldHJ5VXBkYXRlID0gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggZGQxMGZiMzVlODhiYTY3ZWU2
ZjY1MjcyOWU1OWQzODczYjQxNzdhYS4uODEzMGQyZTgyMDZiMGMwNDE2ZGRkOWFmMWJlNDFkNDI2
NDE1YjNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtNTEs
OCArNTEsOCBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0
ZWREYXRhLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvU2V0
Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgotI2luY2x1ZGUgPHd0Zi9U
ZW1wb3JhcnlDaGFuZ2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xODYsNyArMTg2
LDcgQEAgYm9vbCBSZW5kZXJWaWV3OjpoaXRUZXN0KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGwKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dCgpOwogICAgIAogI2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9v
bD4gaGl0VGVzdFJlc3RvcmVyIHsgbV9pbkhpdFRlc3RpbmcsIHRydWUgfTsKKyAgICBTZXRGb3JT
Y29wZTxib29sPiBoaXRUZXN0UmVzdG9yZXIgeyBtX2luSGl0VGVzdGluZywgdHJ1ZSB9OwogI2Vu
ZGlmCiAKICAgICBGcmFtZUZsYXR0ZW5pbmdMYXlvdXREaXNhbGxvd2VyIGRpc2FsbG93ZXIoZnJh
bWVWaWV3KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L0V2ZW50TG9vcElu
cHV0RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvRXZlbnRMb29wSW5wdXRE
aXNwYXRjaGVyLmNwcAppbmRleCBjZDhiOTNjMzBlNjJiNDdhYTNhMzk4MDdhODhmNGQ4MWE5NjFj
Yzk5Li41MTAyOTNmYzE2YzY0YWM5YjVmYjUxZTdiOThkMDkwZDhiNTEzNjY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyLmNwcApAQCAt
MzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZXBsYXlpbmdJbnB1
dEN1cnNvci5oIgogI2luY2x1ZGUgIldlYlJlcGxheUlucHV0cy5oIgotI2luY2x1ZGUgPHd0Zi9U
ZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogI2lmICFM
T0dfRElTQUJMRUQKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9p
ZCBFdmVudExvb3BJbnB1dERpc3BhdGNoZXI6OmRpc3BhdGNoSW5wdXQoKQogICAgICAgICByZXR1
cm47CiAKICAgICB7Ci0gICAgICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2UobV9kaXNw
YXRjaGluZywgdHJ1ZSk7CisgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2Rpc3Bh
dGNoaW5nLCB0cnVlKTsKICAgICAgICAgbV9jdXJyZW50V29yay5pbnB1dC0+ZGlzcGF0Y2gobV9w
YWdlLnJlcGxheUNvbnRyb2xsZXIoKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlTWFwLmNwcAppbmRleCBhZTQ4YjYwMjQxNDg4N2ZmYjI4OGQ2N2FlYjY2Zjk0ZWVlZDE5ZWU5
Li4yZjQ3ZWNlYTE1NjBmYTAyM2VlZGY4MTU2ZThkZTc0MDAzZmViYzExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZU1hcC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJTdG9yYWdlTWFwLmgiCiAKLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5
Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtMTQ0LDcgKzE0NCw3IEBAIFJlZlB0cjxTdG9yYWdlTWFwPiBTdG9yYWdlTWFw
OjpzZXRJdGVtKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBTCiAKIFJl
ZlB0cjxTdG9yYWdlTWFwPiBTdG9yYWdlTWFwOjpzZXRJdGVtSWdub3JpbmdRdW90YShjb25zdCBT
dHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBUZW1wb3JhcnlDaGFuZ2U8
dW5zaWduZWQ+IHF1b3RhU2l6ZUNoYW5nZShtX3F1b3RhU2l6ZSwgbm9RdW90YSk7CisgICAgU2V0
Rm9yU2NvcGU8dW5zaWduZWQ+IHF1b3RhU2l6ZUNoYW5nZShtX3F1b3RhU2l6ZSwgbm9RdW90YSk7
CiAKICAgICBTdHJpbmcgb2xkVmFsdWU7CiAgICAgYm9vbCBxdW90YUV4Y2VwdGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQmxlbmRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aEJsZW5kZXIuY3BwCmluZGV4IGM3ZjlkNjg3Yjk3MmJkNWY5MTMyZWQ2
MjA0YWNkNGIzNmQwYjgxZDQuLjhkMmY2MzZjZjRiMGY5MWFkNjIyMDQwYjM5YWQyZTE3MjkxYjRi
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQmxlbmRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVuZGVyLmNwcApAQCAtMjQsNyArMjQsNyBA
QAogI2luY2x1ZGUgIkFuaW1hdGlvblV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlNWR1BhdGhTZWcu
aCIKICNpbmNsdWRlICJTVkdQYXRoU291cmNlLmgiCi0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNo
YW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTM0MSw3ICszNDEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTZWdtZW50RXF1
YWwoY29uc3QgU1ZHUGF0aFNlZ1R5cGUmIGZyb21UeXBlLCBjb25zdCBTVkdQYXRoUwogCiBib29s
IFNWR1BhdGhCbGVuZGVyOjphZGRBbmltYXRlZFBhdGgodW5zaWduZWQgcmVwZWF0Q291bnQpCiB7
Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPHVuc2lnbmVkPiBjaGFuZ2UobV9hZGRUeXBlc0NvdW50LCBy
ZXBlYXRDb3VudCk7CisgICAgU2V0Rm9yU2NvcGU8dW5zaWduZWQ+IGNoYW5nZShtX2FkZFR5cGVz
Q291bnQsIHJlcGVhdENvdW50KTsKICAgICByZXR1cm4gYmxlbmRBbmltYXRlZFBhdGgoMCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCAyN2Y4MzdiYmU0YjhhOWZkNmFlOTI2YjE4ODc5MjI5
MTA4NTQ0MDY1Li4xMWJjZTNiZWUwZTBiYTFkNzAyZjcyYzY2NDUzY2MyYTJiZGViN2Y2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJy
ZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CiAjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVk
ZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAj
aWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGRi
YzcyOTMzYTZkMjhiMWMzNDU2YTNiZGIyOTkyNDUwNGUxYjI5MWUuLjFlNjYwNDI2NDcxN2NhYWU1
ZGE4OTBjMmU3NzMyZWJkZWE3YjI1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KQEAgLTIxOSw4ICsyMTksOCBAQAogI2ltcG9ydCA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRl
ci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNp
bXBvcnQgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgot
I2ltcG9ydCA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4v
ZHlsZFNQSS5oPgogCiAjaWYgIVBMQVRGT1JNKElPUykKQEAgLTk0MTYsNyArOTQxNiw3IEBAIC0g
KHZvaWQpdXBkYXRlVGV4dFRvdWNoQmFyCiAgICAgaWYgKF9wcml2YXRlLT5faXNVcGRhdGluZ1Rl
eHRUb3VjaEJhcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgVGVtcG9yYXJ5Q2hhbmdlPEJPT0w+
IGlzVXBkYXRpbmdUZXh0VG91Y2hCYXIoX3ByaXZhdGUtPl9pc1VwZGF0aW5nVGV4dFRvdWNoQmFy
LCBZRVMpOworICAgIFNldEZvclNjb3BlPEJPT0w+IGlzVXBkYXRpbmdUZXh0VG91Y2hCYXIoX3By
aXZhdGUtPl9pc1VwZGF0aW5nVGV4dFRvdWNoQmFyLCBZRVMpOwogCiAgICAgaWYgKCFfcHJpdmF0
ZS0+X3RleHRUb3VjaEJhckl0ZW1Db250cm9sbGVyKQogICAgICAgICBfcHJpdmF0ZS0+X3RleHRU
b3VjaEJhckl0ZW1Db250cm9sbGVyID0gYWRvcHROUyhbW1dlYlRleHRUb3VjaEJhckl0ZW1Db250
cm9sbGVyIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6c2VsZl0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IGM3
ZjdkZTNlY2EwZTJhNjZjYTc0YjVlNDZhZmZiZjFkOGFhNGYzYjYuLmRhOWRiMjI0ZWRjMGVhMGNi
ZDAwMmRjMTcxMmEwYzE4NmQxOTM1ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0hUVFBIZWFkZXJNYXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lk
ZW50aWZpZXJSZXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0jaW5j
bHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CkBAIC0xMDcsNyArMTA3LDcgQEAgYm9vbCBQbHVnaW5Db250cm9sbGVyUHJveHk6OmluaXRpYWxp
emUoY29uc3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiBjcmVhdGlvblAKICAgICBBU1NFUlQo
IW1fcGx1Z2luKTsKIAogICAgIEFTU0VSVCghbV9pc0luaXRpYWxpemluZyk7Ci0gICAgbV9pc0lu
aXRpYWxpemluZyA9IHRydWU7IC8vIENhbm5vdCB1c2UgVGVtcG9yYXJ5Q2hhbmdlIGhlcmUsIGJl
Y2F1c2UgdGhpcyBvYmplY3QgY2FuIGJlIGRlbGV0ZWQgYmVmb3JlIHRoZSBmdW5jdGlvbiByZXR1
cm5zLgorICAgIG1faXNJbml0aWFsaXppbmcgPSB0cnVlOyAvLyBDYW5ub3QgdXNlIFNldEZvclNj
b3BlIGhlcmUsIGJlY2F1c2UgdGhpcyBvYmplY3QgY2FuIGJlIGRlbGV0ZWQgYmVmb3JlIHRoZSBm
dW5jdGlvbiByZXR1cm5zLgogCiAgICAgbV9wbHVnaW4gPSBOZXRzY2FwZVBsdWdpbjo6Y3JlYXRl
KFBsdWdpblByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHNjYXBlUGx1Z2luTW9kdWxlKCkpOwogICAg
IGlmICghbV9wbHVnaW4pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggZGMzNjg3YWUzOWNkYzM4OTQwY2VjYWYw
MWQ1YTc0N2ZjMjZjMGE5NC4uNTRhOGVlNjVlYzViZGFiOWNjMDM3NzU3YjZhMjZhOTE1MjBlMTNk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKQEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm94eU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbmNs
dWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAg
LTEyMCw3ICsxMjAsNyBAQCB2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpzZXRHbG9iYWxFeGNl
cHRpb24oY29uc3QgU3RyaW5nJiBleGNlcHRpb25TdHJpbmcpCiAKIHZvaWQgV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
SVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIFRlbXBvcmFyeUNoYW5nZTxJUEM6OkNvbm5l
Y3Rpb24qPiBjdXJyZW50Q29ubmVjdGlvbkNoYW5nZShjdXJyZW50Q29ubmVjdGlvbiwgJmNvbm5l
Y3Rpb24pOworICAgIFNldEZvclNjb3BlPElQQzo6Q29ubmVjdGlvbio+IGN1cnJlbnRDb25uZWN0
aW9uQ2hhbmdlKGN1cnJlbnRDb25uZWN0aW9uLCAmY29ubmVjdGlvbik7CiAKICAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0
aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKQEAgLTE0Miw3ICsxNDIs
NyBAQCB2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RAogCiB2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9u
OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVu
Y29kZXIpCiB7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPElQQzo6Q29ubmVjdGlvbio+IGN1cnJlbnRD
b25uZWN0aW9uQ2hhbmdlKGN1cnJlbnRDb25uZWN0aW9uLCAmY29ubmVjdGlvbik7CisgICAgU2V0
Rm9yU2NvcGU8SVBDOjpDb25uZWN0aW9uKj4gY3VycmVudENvbm5lY3Rpb25DaGFuZ2UoY3VycmVu
dENvbm5lY3Rpb24sICZjb25uZWN0aW9uKTsKIAogICAgIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQg
PSBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tCmluZGV4IGUwNjZlMmYzYWYw
ZTNmOGMyOTU3OTU5ZmVlOWQ4M2QzYjgwMmE3OGEuLmUyYjMwYmE5NjM3NjA4ODY4NjFmYmVkZDBj
NmJkNjU5YjZkMmIzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29j
b2EvV0tSZW1vdGVPYmplY3RDb2Rlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L0NvY29hL1dLUmVtb3RlT2JqZWN0Q29kZXIubW0KQEAgLTM3LDcgKzM3LDcgQEAKICNpbXBvcnQg
Il9XS1JlbW90ZU9iamVjdEludGVyZmFjZUludGVybmFsLmgiCiAjaW1wb3J0IDxvYmpjL3J1bnRp
bWUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbXBvcnQgPHd0Zi9UZW1wb3JhcnlD
aGFuZ2UuaD4KKyNpbXBvcnQgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2ltcG9ydCA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgY2xhc3NOYW1lS2V5ID0gIiRj
bGFzcyI7CkBAIC0yNzcsNyArMjc3LDcgQEAgc3RhdGljIFJlZlB0cjxBUEk6OkRpY3Rpb25hcnk+
IGNyZWF0ZUVuY29kZWRPYmplY3QoV0tSZW1vdGVPYmplY3RFbmNvZGVyICplbmNvZGUKICAgICAg
ICAgcmV0dXJuIG5pbDsKIAogICAgIFJlZjxBUEk6OkRpY3Rpb25hcnk+IGRpY3Rpb25hcnkgPSBB
UEk6OkRpY3Rpb25hcnk6OmNyZWF0ZSgpOwotICAgIFRlbXBvcmFyeUNoYW5nZTxBUEk6OkRpY3Rp
b25hcnkqPiBkaWN0aW9uYXJ5Q2hhbmdlKGVuY29kZXItPl9jdXJyZW50RGljdGlvbmFyeSwgZGlj
dGlvbmFyeS5wdHIoKSk7CisgICAgU2V0Rm9yU2NvcGU8QVBJOjpEaWN0aW9uYXJ5Kj4gZGljdGlv
bmFyeUNoYW5nZShlbmNvZGVyLT5fY3VycmVudERpY3Rpb25hcnksIGRpY3Rpb25hcnkucHRyKCkp
OwogCiAgICAgZW5jb2RlT2JqZWN0KGVuY29kZXIsIG9iamVjdCk7CiAKQEAgLTY2NywxMyArNjY3
LDEzIEBAIHN0YXRpYyBpZCBkZWNvZGVPYmplY3QoV0tSZW1vdGVPYmplY3REZWNvZGVyICpkZWNv
ZGVyLCBjb25zdCBBUEk6OkRpY3Rpb25hcnkqIGRpCiAgICAgaWYgKCFkaWN0aW9uYXJ5KQogICAg
ICAgICByZXR1cm4gbmlsOwogCi0gICAgVGVtcG9yYXJ5Q2hhbmdlPGNvbnN0IEFQSTo6RGljdGlv
bmFyeSo+IGRpY3Rpb25hcnlDaGFuZ2UoZGVjb2Rlci0+X2N1cnJlbnREaWN0aW9uYXJ5LCBkaWN0
aW9uYXJ5KTsKKyAgICBTZXRGb3JTY29wZTxjb25zdCBBUEk6OkRpY3Rpb25hcnkqPiBkaWN0aW9u
YXJ5Q2hhbmdlKGRlY29kZXItPl9jdXJyZW50RGljdGlvbmFyeSwgZGljdGlvbmFyeSk7CiAKICAg
ICAvLyBJZiBubyBhbGxvd2VkIGNsYXNzZXMgd2VyZSBsaXN0ZWQsIGp1c3QgdXNlIHRoZSBjdXJy
ZW50bHkgYWxsb3dlZCBjbGFzc2VzLgogICAgIGlmIChhbGxvd2VkQ2xhc3Nlcy5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiBkZWNvZGVPYmplY3QoZGVjb2Rlcik7CiAKLSAgICBUZW1wb3JhcnlD
aGFuZ2U8Y29uc3QgSGFzaFNldDxDbGFzcz4qPiBhbGxvd2VkQ2xhc3Nlc0NoYW5nZShkZWNvZGVy
LT5fYWxsb3dlZENsYXNzZXMsICZhbGxvd2VkQ2xhc3Nlcyk7CisgICAgU2V0Rm9yU2NvcGU8Y29u
c3QgSGFzaFNldDxDbGFzcz4qPiBhbGxvd2VkQ2xhc3Nlc0NoYW5nZShkZWNvZGVyLT5fYWxsb3dl
ZENsYXNzZXMsICZhbGxvd2VkQ2xhc3Nlcyk7CiAgICAgcmV0dXJuIGRlY29kZU9iamVjdChkZWNv
ZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQppbmRleCAyYzQ2MjYwMDYzMjA0OTg1ODA3ZjZiMGUxYjRkYWU0NzY4NmVhMWRmLi5j
YjY0OGM1OGJlMjA5NzJlNjg0ZGE0ZjBkZTFjNTYxM2I3YTU4ZGM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMTAwLDcgKzEwMCw3
IEBACiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9PcHRpb25h
bC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotI2ltcG9ydCA8d3RmL1RlbXBvcmFyeUNo
YW5nZS5oPgorI2ltcG9ydCA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rh
cndpbi9keWxkU1BJLmg+CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0yMTYzLDcgKzIxNjMsNyBA
QCAtICh2b2lkKV9rZXlib2FyZENoYW5nZWRXaXRoSW5mbzooTlNEaWN0aW9uYXJ5ICopa2V5Ym9h
cmRJbmZvIGFkanVzdFNjcm9sbFZpZXc6KAogCiAgICAgaWYgKGFkanVzdFNjcm9sbFZpZXcpIHsK
ICAgICAgICAgQ0dGbG9hdCBib3R0b21JbnNldEJlZm9yZUFkanVzdG1lbnQgPSBbX3Njcm9sbFZp
ZXcgY29udGVudEluc2V0XS5ib3R0b207Ci0gICAgICAgIFRlbXBvcmFyeUNoYW5nZTxCT09MPiBp
bnNldEFkanVzdG1lbnRHdWFyZChfY3VycmVudGx5QWRqdXN0aW5nU2Nyb2xsVmlld0luc2V0c0Zv
cktleWJvYXJkLCBZRVMpOworICAgICAgICBTZXRGb3JTY29wZTxCT09MPiBpbnNldEFkanVzdG1l
bnRHdWFyZChfY3VycmVudGx5QWRqdXN0aW5nU2Nyb2xsVmlld0luc2V0c0ZvcktleWJvYXJkLCBZ
RVMpOwogICAgICAgICBbX3Njcm9sbFZpZXcgX2FkanVzdEZvckF1dG9tYXRpY0tleWJvYXJkSW5m
bzprZXlib2FyZEluZm8gYW5pbWF0ZWQ6WUVTIGxhc3RBZGp1c3RtZW50OiZfbGFzdEFkanVzdG1l
bnRGb3JTY3JvbGxlcl07CiAgICAgICAgIENHRmxvYXQgYm90dG9tSW5zZXRBZnRlckFkanVzdG1l
bnQgPSBbX3Njcm9sbFZpZXcgY29udGVudEluc2V0XS5ib3R0b207CiAgICAgICAgIGlmIChib3R0
b21JbnNldEJlZm9yZUFkanVzdG1lbnQgIT0gYm90dG9tSW5zZXRBZnRlckFkanVzdG1lbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggNDE1
NTljMWU2OWUzMGMyNTZiMmVjZTQ3ZGU1NjU4OTVjYjIwZTBiNS4uODIwMmUzMmE4MWQ0ODMwZmZl
OWRmOWY1YjZjZTc1YjIzYmE3YWFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtOTcsNyArOTcsNyBAQAogI2ltcG9ydCA8V2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxzeXMvc3RhdC5oPgogI2ltcG9ydCA8d3RmL05ldmVy
RGVzdHJveWVkLmg+Ci0jaW1wb3J0IDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW1wb3J0IDx3
dGYvU2V0Rm9yU2NvcGUuaD4KIAogI2lmIEhBVkUoVE9VQ0hfQkFSKSAmJiBFTkFCTEUoV0VCX1BM
QVlCQUNLX0NPTlRST0xTX01BTkFHRVIpCiBTT0ZUX0xJTktfRlJBTUVXT1JLKEFWS2l0KQpAQCAt
OTg2LDcgKzk4Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVRleHRUb3VjaEJhcigpCiAg
ICAgaWYgKG1faXNVcGRhdGluZ1RleHRUb3VjaEJhcikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
VGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGlzVXBkYXRpbmdUZXh0RnVuY3Rpb25CYXIobV9pc1VwZGF0
aW5nVGV4dFRvdWNoQmFyLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBpc1VwZGF0aW5n
VGV4dEZ1bmN0aW9uQmFyKG1faXNVcGRhdGluZ1RleHRUb3VjaEJhciwgdHJ1ZSk7CiAKICAgICBp
ZiAoIW1fdGV4dFRvdWNoQmFySXRlbUNvbnRyb2xsZXIpCiAgICAgICAgIG1fdGV4dFRvdWNoQmFy
SXRlbUNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tUZXh0VG91Y2hCYXJJdGVtQ29udHJvbGxlciBh
bGxvY10gaW5pdFdpdGhXZWJWaWV3SW1wbDp0aGlzXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9pb3MvU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbQppbmRleCA4YzBmMTQ2ZGE1YTQz
NjRmNzZmYjU2ODE3MDFiY2ZmNmE1ZWMxNTBiLi5jNTUxY2U4NjM2Y2UyMTRkOGFjMjU1ODQyODk3
YWEyYTcxZDVhM2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xs
aW5nL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1MubW0KQEAgLTM1LDcgKzM1LDcgQEAKICNpbXBvcnQgPFVJS2l0L1VJ
UGFuR2VzdHVyZVJlY29nbml6ZXIuaD4KICNpbXBvcnQgPFVJS2l0L1VJU2Nyb2xsVmlldy5oPgog
I2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KLSNpbXBvcnQgPHd0Zi9UZW1wb3Jh
cnlDaGFuZ2UuaD4KKyNpbXBvcnQgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiAjaWYgRU5BQkxFKENT
U19TQ1JPTExfU05BUCkKICNpbXBvcnQgPFdlYkNvcmUvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmg+
CkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKIHsKICAgICBTY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4o
c3RhdGVOb2RlKTsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiB1cGRhdGluZ0NoYW5nZSht
X3VwZGF0aW5nRnJvbVN0YXRlTm9kZSwgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gdXBk
YXRpbmdDaGFuZ2UobV91cGRhdGluZ0Zyb21TdGF0ZU5vZGUsIHRydWUpOwogCiAgICAgY29uc3Qg
YXV0byYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVPdmVyZmxv
d1Njcm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9ndGsvV2ViUGFzdGVib2FyZFByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9ndGsvV2ViUGFzdGVib2FyZFByb3h5R3RrLmNwcAppbmRleCBiOGM5ZjdiZGZm
NWNkM2ZmY2EyOGQyZDM1ZGY1MTczZTg4N2QzMWU2Li4xYjE1ODY5YmRiMWQ3ZjIyNTQwNDAxOTI1
NGI2YWE4YWU5YWJlMmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYlBhc3RlYm9hcmRQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2d0ay9XZWJQYXN0ZWJvYXJkUHJveHlHdGsuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVk
ZSAiV2ViRnJhbWVQcm94eS5oIgogI2luY2x1ZGUgIldlYlNlbGVjdGlvbkRhdGEuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3Jh
cnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZv
aWQgV2ViUGFzdGVib2FyZFByb3h5Ojp3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUsIGNvbnN0IFdlYlNlbGVjdGlvbkRhdGEmIHNlbGVjdGlvbikKIHsKLSAgICBU
ZW1wb3JhcnlDaGFuZ2U8V2ViRnJhbWVQcm94eSo+IGZyYW1lV3JpdGluZ1RvQ2xpcGJvYXJkKG1f
ZnJhbWVXcml0aW5nVG9DbGlwYm9hcmQsIG1fcHJpbWFyeVNlbGVjdGlvbk93bmVyKTsKKyAgICBT
ZXRGb3JTY29wZTxXZWJGcmFtZVByb3h5Kj4gZnJhbWVXcml0aW5nVG9DbGlwYm9hcmQobV9mcmFt
ZVdyaXRpbmdUb0NsaXBib2FyZCwgbV9wcmltYXJ5U2VsZWN0aW9uT3duZXIpOwogICAgIFBsYXRm
b3JtUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSkud3JpdGVUb0NsaXBib2FyZChzZWxlY3Rpb24u
c2VsZWN0aW9uRGF0YSwgW3RoaXNdIHsKICAgICAgICAgaWYgKG1fZnJhbWVXcml0aW5nVG9DbGlw
Ym9hcmQgPT0gbV9wcmltYXJ5U2VsZWN0aW9uT3duZXIpCiAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
Y3BwCmluZGV4IDczNWI3ZjE5YTZiNTI1NmExOWNkODg1ZmUxNDE3OTYzMGQ2M2JiZTguLjAwZDc3
NmZmMzA3ZDE2MWU0YTE3NjNiM2YwOThjMGRmZjA2ODc2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5n
Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0zNiw3ICsz
Niw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JDb250cm9sbGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNs
dWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgQ29t
cG9zaXRpbmdDb29yZGluYXRvcjo6c2l6ZURpZENoYW5nZShjb25zdCBJbnRTaXplJiBuZXdTaXpl
KQogCiBib29sIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdl
cygpCiB7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHByb3RlY3RvcihtX2lzRmx1c2hpbmdM
YXllckNoYW5nZXMsIHRydWUpOworICAgIFNldEZvclNjb3BlPGJvb2w+IHByb3RlY3RvcihtX2lz
Rmx1c2hpbmdMYXllckNoYW5nZXMsIHRydWUpOwogCiAgICAgaW5pdGlhbGl6ZVJvb3RDb21wb3Np
dGluZ0xheWVySWZOZWVkZWQoKTsKIApAQCAtMzczLDcgKzM3Myw3IEBAIHZvaWQgQ29tcG9zaXRp
bmdDb29yZGluYXRvcjo6cmVuZGVyTmV4dEZyYW1lKCkKIAogdm9pZCBDb21wb3NpdGluZ0Nvb3Jk
aW5hdG9yOjpwdXJnZUJhY2tpbmdTdG9yZXMoKQogewotICAgIFRlbXBvcmFyeUNoYW5nZTxib29s
PiBwdXJnaW5nVG9nZ2xlKG1faXNQdXJnaW5nLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29s
PiBwdXJnaW5nVG9nZ2xlKG1faXNQdXJnaW5nLCB0cnVlKTsKIAogICAgIGZvciAoYXV0byYgcmVn
aXN0ZXJlZExheWVyIDogbV9yZWdpc3RlcmVkTGF5ZXJzLnZhbHVlcygpKQogICAgICAgICByZWdp
c3RlcmVkTGF5ZXItPnB1cmdlQmFja2luZ1N0b3JlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDFmNmU2ODk1OWJiNzI0YTg0ZmM3NDEy
ZDAwMzZjMDk4NzZkNTFkMGEuLjM0N2YxZDRlODIyMmQ5Y2Q2Yzc0NGFjODNhY2ZhOGMyMzdiMzRl
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTE4NSw3ICsxODUsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4K
LSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNj
b3BlLmg+CiAKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAjaW5jbHVkZSAiRGF0YURldGVj
dGlvblJlc3VsdC5oIgpAQCAtMjIzOCw3ICsyMjM4LDcgQEAgc3RhdGljIGJvb2wgaGFuZGxlTW91
c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50JiBtb3VzZUV2ZW50LCBXZWJQYWdlKiBwYWdlLCBi
b28KIAogdm9pZCBXZWJQYWdlOjptb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNl
RXZlbnQpCiB7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHVzZXJJc0ludGVyYWN0aW5nQ2hh
bmdlIHsgbV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9OworICAgIFNldEZvclNjb3BlPGJvb2w+
IHVzZXJJc0ludGVyYWN0aW5nQ2hhbmdlIHsgbV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9Owog
CiAgICAgbV91c2VyQWN0aXZpdHlIeXN0ZXJlc2lzLmltcHVsc2UoKTsKIApAQCAtMjMxNiw3ICsy
MzE2LDcgQEAgc3RhdGljIGJvb2wgaGFuZGxlS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVu
dCYga2V5Ym9hcmRFdmVudCwgUGFnZSogcGFnZSkKIAogdm9pZCBXZWJQYWdlOjprZXlFdmVudChj
b25zdCBXZWJLZXlib2FyZEV2ZW50JiBrZXlib2FyZEV2ZW50KQogewotICAgIFRlbXBvcmFyeUNo
YW5nZTxib29sPiB1c2VySXNJbnRlcmFjdGluZ0NoYW5nZSB7IG1fdXNlcklzSW50ZXJhY3Rpbmcs
IHRydWUgfTsKKyAgICBTZXRGb3JTY29wZTxib29sPiB1c2VySXNJbnRlcmFjdGluZ0NoYW5nZSB7
IG1fdXNlcklzSW50ZXJhY3RpbmcsIHRydWUgfTsKIAogICAgIG1fdXNlckFjdGl2aXR5SHlzdGVy
ZXNpcy5pbXB1bHNlKCk7CiAKQEAgLTIzNzgsNyArMjM3OCw3IEBAIHN0YXRpYyBib29sIGhhbmRs
ZVRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgUGFnZSogcGFnZSkK
ICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKIHZvaWQgV2ViUGFnZTo6ZGlzcGF0Y2hUb3Vj
aEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQsIGJvb2wmIGhhbmRsZWQpCiB7
Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHVzZXJJc0ludGVyYWN0aW5nQ2hhbmdlIHsgbV91
c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9OworICAgIFNldEZvclNjb3BlPGJvb2w+IHVzZXJJc0lu
dGVyYWN0aW5nQ2hhbmdlIHsgbV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9OwogCiAgICAgbV9s
YXN0SW50ZXJhY3Rpb25Mb2NhdGlvbiA9IHRvdWNoRXZlbnQucG9zaXRpb24oKTsKICAgICBDdXJy
ZW50RXZlbnQgY3VycmVudEV2ZW50KHRvdWNoRXZlbnQpOwpAQCAtMjUzOSw3ICsyNTM5LDcgQEAg
dm9pZCBXZWJQYWdlOjpzZXRJbml0aWFsRm9jdXMoYm9vbCBmb3J3YXJkLCBib29sIGlzS2V5Ym9h
cmRFdmVudFZhbGlkLCBjb25zdCBXZWIKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHVzZXJJc0ludGVyYWN0aW5nQ2hhbmdlIHsg
bV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9OworICAgIFNldEZvclNjb3BlPGJvb2w+IHVzZXJJ
c0ludGVyYWN0aW5nQ2hhbmdlIHsgbV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9OwogCiAgICAg
RnJhbWUmIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJh
bWUoKTsKICAgICBmcmFtZS5kb2N1bWVudCgpLT5zZXRGb2N1c2VkRWxlbWVudCgwKTsKQEAgLTQ2
NDIsNyArNDY0Miw3IEBAIHZvaWQgV2ViUGFnZTo6aW5zZXJ0VGV4dEFzeW5jKGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgRWRpdGluZ1JhbmdlJiByZXBsYWNlbWVuCiAgICAgaWYgKHJlcGxhY2Vt
ZW50RWRpdGluZ1JhbmdlLmxvY2F0aW9uICE9IG5vdEZvdW5kKSB7CiAgICAgICAgIFJlZlB0cjxS
YW5nZT4gcmVwbGFjZW1lbnRSYW5nZSA9IHJhbmdlRnJvbUVkaXRpbmdSYW5nZShmcmFtZSwgcmVw
bGFjZW1lbnRFZGl0aW5nUmFuZ2UsIHN0YXRpY19jYXN0PEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVU
bz4oZWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvKSk7CiAgICAgICAgIGlmIChyZXBsYWNlbWVudFJh
bmdlKSB7Ci0gICAgICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gaXNTZWxlY3RpbmdUZXh0
V2hpbGVJbnNlcnRpbmdBc3luY2hyb25vdXNseShtX2lzU2VsZWN0aW5nVGV4dFdoaWxlSW5zZXJ0
aW5nQXN5bmNocm9ub3VzbHksIHN1cHByZXNzU2VsZWN0aW9uVXBkYXRlKTsKKyAgICAgICAgICAg
IFNldEZvclNjb3BlPGJvb2w+IGlzU2VsZWN0aW5nVGV4dFdoaWxlSW5zZXJ0aW5nQXN5bmNocm9u
b3VzbHkobV9pc1NlbGVjdGluZ1RleHRXaGlsZUluc2VydGluZ0FzeW5jaHJvbm91c2x5LCBzdXBw
cmVzc1NlbGVjdGlvblVwZGF0ZSk7CiAgICAgICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRT
ZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbigqcmVwbGFjZW1lbnRSYW5nZSwgU0VMX0RFRkFVTFRf
QUZGSU5JVFkpKTsKICAgICAgICAgICAgIHJlcGxhY2VzVGV4dCA9IHRydWU7CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQppbmRleCBhMDFmYTA0ZjU4MGNmYTk0MDRjMjRjYzdkNzk5NzJkYmEwYTVjZDdmLi4xNWEy
YzljMjk0YmU5Y2I0YjYxYmJkMThjYmNjNzIwMzA4ZDk1ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xMDMsNyAr
MTAzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV0tDb250ZW50T2JzZXJ2YXRpb24uaD4KICNpbXBv
cnQgPFdlYkNvcmUvV2ViRXZlbnQuaD4KICNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0jaW1w
b3J0IDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTI2ODcsNyArMjY4Nyw3IEBAIHZvaWQg
V2ViUGFnZTo6cmVzZXRUZXh0QXV0b3NpemluZygpCiAKIHZvaWQgV2ViUGFnZTo6ZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRS
ZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5v
YnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJl
Y3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRl
dmljZU9yaWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiB7
Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGR5bmFtaWNTaXplVXBkYXRlR3VhcmQobV9pbkR5
bmFtaWNTaXplVXBkYXRlLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBkeW5hbWljU2l6
ZVVwZGF0ZUd1YXJkKG1faW5EeW5hbWljU2l6ZVVwZGF0ZSwgdHJ1ZSk7CiAgICAgLy8gRklYTUU6
IHRoaXMgZG9lcyBub3QgaGFuZGxlIHRoZSBjYXNlcyB3aGVyZSB0aGUgY29udGVudCB3b3VsZCBj
aGFuZ2UgdGhlIGNvbnRlbnQgc2l6ZSBvciBzY3JvbGwgcG9zaXRpb24gZnJvbSBKYXZhU2NyaXB0
LgogICAgIC8vIFRvIGhhbmRsZSB0aG9zZSBjYXNlcywgd2Ugd291bGQgbmVlZCB0byByZWRvIHRo
aXMgY29tcHV0YXRpb24gb24gZXZlcnkgY2hhbmdlIHVudGlsIHRoZSBuZXh0IHZpc2libGUgY29u
dGVudCByZWN0IHVwZGF0ZS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCmluZGV4IGU4
ZTE0YTkwYjNhOWU2ZTc1MTU4NDY2OTJiNjg2N2QzN2JlNTcwYjYuLmY0YTYxYTBhZDc5ZWFkZDdl
MDc2OTVkNjg0ZGM4NDczNGQ1M2I4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0K
QEAgLTM1LDggKzM1LDggQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL01haW5GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CisjaW1wb3J0
IDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbXBvcnQgPHd0Zi9TeXN0ZW1UcmFjaW5nLmg+Ci0jaW1w
b3J0IDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBh
Z2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VN
YWMubW0KaW5kZXggYTJhMGJmNDQ5ODFjZmQyNjE2OTkxMTdmNmFlYzhjNmYwMmVjYzU5My4uY2U2
NjUwNmFmNGQzYzFhY2RlYjlhMzMxZTI0YzBlYWQxZWQxN2QwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtOTAsNyAr
OTAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9odG1sZWRpdGluZy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNl
Lmg+Ci0jaW1wb3J0IDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW1wb3J0IDx3dGYvU2V0Rm9y
U2NvcGUuaD4KIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0TWFjLmg+CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTk0ODQ4MzZmNTM5YzIyODViODc3YWNh
MGUxZGUzMzIyODI0YWUzMS4uNDRhNWQyOGU1ZmMwOTg5YTllZDM1ZGNkNWRiMmRjNmU2M2Y5ZTY0
NiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDE2LTExLTE2ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21h
aWwuY29tPgorCisgICAgICAgIFtKU0NdIFdURjo6VGVtcG9yYXJ5Q2hhbmdlIHdpdGggV1RGOjpT
ZXRGb3JTY29wZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY0NzYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1NldEZvclNjb3BlLmNwcDogUmVuYW1lZCBmcm9tIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RlbXBvcmFyeUNoYW5nZS5jcHAuCisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0Nv
bnNpc3RlbnRWYWx1ZXMpOgorCiAyMDE2LTExLTE2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
YXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMDg0NTUpOiBMYXlvdXRUZXN0cyBz
d2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbCBhbmQgc3dpcGUvbWFpbi1mcmFt
ZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwgYXJlIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtl
TGlzdHMudHh0CmluZGV4IDg5N2IwZWRmYzJkMjQ0YmQ1Mzk1NzJhZDIyNDUwN2MwMDUwODg3MTQu
Ljg2YzQwNDYyNWY3OTJkNWEzNDlkYmZiMDY2N2Y4ZjhhZGI2YWUzOTYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9DTWFrZUxpc3RzLnR4dApAQCAtNzksNyArNzksNyBAQCBzZXQoVGVzdFdURl9TT1VSQ0VTCiAg
ICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCiAgICAgJHtU
RVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKICAgICAke1RF
U1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKLSAgICAke1RFU1RXRUJL
SVRBUElfRElSfS9UZXN0cy9XVEYvVGVtcG9yYXJ5Q2hhbmdlLmNwcAorICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1Rlc3RzL1dURi9TZXRGb3JTY29wZS5jcHAKICAgICAke1RFU1RXRUJLSVRBUElf
RElSfS9UZXN0cy9XVEYvVGltZS5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9X
VEYvVW5pcXVlUmVmLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9WYXJp
YW50LmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1Y2E3MTZmZWJmOTg3M2FmMjk1ZDI5
OGRjOTIwN2VjYTExOWIyYmZmLi41NGU3ZThhOGMzMWEzN2IxYWVlYzQ2OWFiZjQ3Y2ZmNWNlNjlk
MjU1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjI2LDcgKzIyNiw3IEBACiAJCTdDODNE
RjM3MUQwQTU5MEMwMEZFQkNGMyAvKiBTdHJpbmdJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjFCNDQzMTVDQTQzNEYwMEQxRTRCRiAvKiBT
dHJpbmdJbXBsLmNwcCAqLzsgfTsKIAkJN0M4M0RGMzgxRDBBNTkwQzAwRkVCQ0YzIC8qIFN0cmlu
Z09wZXJhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMDEzNjNDNzEzQzM5OTczMDBFRjM5NjQgLyogU3RyaW5nT3BlcmF0b3JzLmNwcCAqLzsg
fTsKIAkJN0M4M0RGM0ExRDBBNTkwQzAwRkVCQ0YzIC8qIFN0cmluZ1ZpZXcuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3NEQ0MkQxODgyMjhGMzAw
RTVFRDU3IC8qIFN0cmluZ1ZpZXcuY3BwICovOyB9OwotCQk3QzgzREYzRDFEMEE1OTBDMDBGRUJD
RjMgLyogVGVtcG9yYXJ5Q2hhbmdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBCQ0Q4NTY5MTQ4NUM5OEIwMEVBMjAwMyAvKiBUZW1wb3JhcnlDaGFu
Z2UuY3BwICovOyB9OworCQk3QzgzREYzRDFEMEE1OTBDMDBGRUJDRjMgLyogU2V0Rm9yU2NvcGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEJDRDg1
NjkxNDg1Qzk4QjAwRUEyMDAzIC8qIFNldEZvclNjb3BlLmNwcCAqLzsgfTsKIAkJN0M4M0RGNDAx
RDBBNTkwQzAwRkVCQ0YzIC8qIFRlc3RzQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEzMUFBODExNzEzMUZDMDBCNjk3MjcgLyog
VGVzdHNDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJN0M4M0RGNEMxRDBBNTkwQzAwRkVCQ0YzIC8q
IFZlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzU1RjVGODE0QUQ3OEVFMDA0ODRCRTEgLyogVmVjdG9yLmNwcCAqLzsgfTsKIAkJN0M4M0RG
NTkxRDBBNTkwQzAwRkVCQ0YzIC8qIFBhcmtpbmdMb3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFNDQ3OTcxQjc2RjFFMzAwOTQ5OEVCIC8qIFBh
cmtpbmdMb3QuY3BwICovOyB9OwpAQCAtNzMxLDcgKzczMSw3IEBACiAJCTAwQ0Q5RjYyMTVCRTMx
MkMwMDJEQTJDRSAvKiBCYWNrRm9yd2FyZExpc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBCYWNrRm9yd2FyZExpc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3NjZERDFGMUE1QUQ1MjAwMDIzRTNCQiAvKiBQZW5kaW5nQVBJUmVxdWVzdFVS
TC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZW5kaW5nQVBJUmVx
dWVzdFVSTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBCQ0Q4MzM0MTQ4NTdD
RTQwMEVBMjAwMyAvKiBIYXNoTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEhhc2hNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwQkNEODU2
OTE0ODVDOThCMDBFQTIwMDMgLyogVGVtcG9yYXJ5Q2hhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRlbXBvcmFyeUNoYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBCQ0Q4NTY5MTQ4NUM5OEIwMEVBMjAwMyAvKiBTZXRGb3JTY29wZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXRGb3JTY29wZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTM5RTcyMUE0MjNBMkIwMEY1OTBGNSAv
KiBQbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbTsgcGF0aCA9IGNvY29hL1BsYXRm
b3JtVXRpbGl0aWVzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTM5
RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBXZWFrT2JqQ1B0ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYWtPYmpDUHRyLm1tOyBwYXRoID0gY29jb2EvV2Vha09i
akNQdHIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTdCQkQ0MTVBRjZDNEQw
MDdBQjc1MyAvKiBXZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVN0YXRpc3RpY3NXaXRoTm9XZWJQ
cm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NDgsNyArMTg0OCw3
IEBACiAJCQkJQzAxMzYzQzcxM0MzOTk3MzAwRUYzOTY0IC8qIFN0cmluZ09wZXJhdG9ycy5jcHAg
Ki8sCiAJCQkJN0M3NEQ0MkQxODgyMjhGMzAwRTVFRDU3IC8qIFN0cmluZ1ZpZXcuY3BwICovLAog
CQkJCTU1OTdGODM0MUQ5NTk2QzgwMDY2QkMyMSAvKiBTeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmNw
cCAqLywKLQkJCQkwQkNEODU2OTE0ODVDOThCMDBFQTIwMDMgLyogVGVtcG9yYXJ5Q2hhbmdlLmNw
cCAqLywKKwkJCQkwQkNEODU2OTE0ODVDOThCMDBFQTIwMDMgLyogU2V0Rm9yU2NvcGUuY3BwICov
LAogCQkJCTBGMkMyMEI3MURDRDU0NDgwMDU0MkQ5RSAvKiBUaW1lLmNwcCAqLywKIAkJCQk1QzVF
NjMzRDFEMEI2Nzk0MDA4NUEwMjUgLyogVW5pcXVlUmVmLmNwcCAqLywKIAkJCQk3Q0QwRDVBQTFE
NTUzNERFMDAwQ0M5RTEgLyogVmFyaWFudC5jcHAgKi8sCkBAIC0yMzUzLDcgKzIzNTMsNyBAQAog
CQkJCTdDODNERjM4MUQwQTU5MEMwMEZFQkNGMyAvKiBTdHJpbmdPcGVyYXRvcnMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTU5N0Y4MzYxRDk1OTZDODAwNjZCQzIxIC8qIFN5bmNocm9uaXplZEZp
eGVkUXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0RGM0ExRDBBNTkwQzAwRkVCQ0Yz
IC8qIFN0cmluZ1ZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJN0M4M0RGM0QxRDBBNTkwQzAw
RkVCQ0YzIC8qIFRlbXBvcmFyeUNoYW5nZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3QzgzREYz
RDFEMEE1OTBDMDBGRUJDRjMgLyogU2V0Rm9yU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0M4M0RGNDAxRDBBNTkwQzAwRkVCQ0YzIC8qIFRlc3RzQ29udHJvbGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QzgzRTAzQjFEMEE2MDI3MDBGRUJDRjMgLyogVXRpbGl0aWVzQ29jb2EubW0g
aW4gU291cmNlcyAqLywKIAkJCQk3QzgzRkM3MTFENTUzNUE4MDAxREZCQ0QgLyogVmFyaWFudC5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1NldEZvclNjb3BlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1NldEZv
clNjb3BlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmUzNDk0ZDYxMTQ0Zjk2OGE0YmMyMmMxOTZmOGEzNDc4
OTlhNjdmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U2V0Rm9yU2NvcGUuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CisKK25hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKKworVEVTVChXVEYsIFNldEZvclNjb3BlTmVzdGVkKQoreworICAgIGJv
b2wgb3JpZ2luYWxseUZhbHNlID0gZmFsc2U7CisgICAgeworICAgICAgICBTZXRGb3JTY29wZTxi
b29sPiBjaGFuZ2UxT3JpZ2luYWxseUZhbHNlKG9yaWdpbmFsbHlGYWxzZSwgdHJ1ZSk7CisgICAg
ICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsbHlGYWxzZSk7CisgICAgICAgIHsKKyAgICAgICAgICAg
IFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZTJPcmlnaW5hbGx5RmFsc2Uob3JpZ2luYWxseUZhbHNl
LCBmYWxzZSk7CisgICAgICAgICAgICBFWFBFQ1RfRkFMU0Uob3JpZ2luYWxseUZhbHNlKTsKKyAg
ICAgICAgfQorICAgICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbGx5RmFsc2UpOworICAgIH0KKyAg
ICBFWFBFQ1RfRkFMU0Uob3JpZ2luYWxseUZhbHNlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVGVt
cG9yYXJ5Q2hhbmdlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RlbXBvcmFy
eUNoYW5nZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiYTBmMTViZDc5ODg0
ZjRlMmIwZDViM2QzNTMyZjJjZDc5YjVhNWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVGVtcG9yYXJ5
Q2hhbmdlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgot
Ci1uYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Ci0KLVRFU1QoV1RGLCBUZW1wb3JhcnlDaGFuZ2VO
ZXN0ZWQpCi17Ci0gICAgYm9vbCBvcmlnaW5hbGx5RmFsc2UgPSBmYWxzZTsKLSAgICB7Ci0gICAg
ICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2UxT3JpZ2luYWxseUZhbHNlKG9yaWdpbmFs
bHlGYWxzZSwgdHJ1ZSk7Ci0gICAgICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsbHlGYWxzZSk7Ci0g
ICAgICAgIHsKLSAgICAgICAgICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2UyT3JpZ2lu
YWxseUZhbHNlKG9yaWdpbmFsbHlGYWxzZSwgZmFsc2UpOwotICAgICAgICAgICAgRVhQRUNUX0ZB
TFNFKG9yaWdpbmFsbHlGYWxzZSk7Ci0gICAgICAgIH0KLSAgICAgICAgRVhQRUNUX1RSVUUob3Jp
Z2luYWxseUZhbHNlKTsKLSAgICB9Ci0gICAgRVhQRUNUX0ZBTFNFKG9yaWdpbmFsbHlGYWxzZSk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggOWYyNzEzYTc2OWY5YzkzMDBlZTNjZWY5NzM4N2Yy
NzViZmM3ZDJmMi4uZWRlZWM2YzlhZTMyNDM2NDExYWYxYzdkMmQ5YzlhYTJmMTVkMWE2MyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTcyLDcgKzcyLDcg
QEAKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hh
bmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC02OTIsNyAr
NjkyLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVu
dFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW8KIAogYm9vbCBUZXN0Q29udHJvbGxlcjo6
cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykK
IHsKLSAgICBUZW1wb3JhcnlDaGFuZ2U8U3RhdGU+IGNoYW5nZVN0YXRlKG1fc3RhdGUsIFJlc2V0
dGluZyk7CisgICAgU2V0Rm9yU2NvcGU8U3RhdGU+IGNoYW5nZVN0YXRlKG1fc3RhdGUsIFJlc2V0
dGluZyk7CiAgICAgbV9iZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSA9IHRydWU7CiAKICAgICAvLyBU
aGlzIHNldHRpbmcgZGlmZmVycyBiZXR3ZWVuIHRoZSBhbnRpcXVlIGFuZCBtb2Rlcm4gTWFjIFdl
YktpdDIgQVBJLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295038</attachid>
            <date>2016-11-17 00:17:15 -0800</date>
            <delta_ts>2016-11-17 00:49:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164761-20161117171710.patch</filename>
            <type>text/plain</type>
            <size>100321</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MGUyZWUwOTUzZWFlOTg2NmViMDhlOGRlYmQwZjUxNWIyOGI3OTY4Li4wOTViOTdhNTBlZmFkNTVj
ZmY1NzIwZDZkNWRmMTgyMGI4NTcyMzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxNi0xMS0xNyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBXVEY6OlRlbXBvcmFyeUNoYW5nZSB3aXRoIFdURjo6U2V0
Rm9yU2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NDc2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogYnl0ZWNvbXBp
bGVyL1NldEZvclNjb3BlLmg6IFJlbW92ZWQuCisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIu
Y3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHA6
CisgICAgICAgIChJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpkaXNwYXRjaCk6CisgICAg
ICAgICogaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rv
cjo6U2NyaXB0RGVidWdTZXJ2ZXI6OmRpc3BhdGNoQnJlYWtwb2ludEFjdGlvbkxvZyk6CisgICAg
ICAgIChJbnNwZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRjaEJyZWFrcG9pbnRBY3Rp
b25Tb3VuZCk6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRj
aEJyZWFrcG9pbnRBY3Rpb25Qcm9iZSk6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERlYnVn
U2VydmVyOjpzb3VyY2VQYXJzZWQpOgorICAgICAgICAoSW5zcGVjdG9yOjpTY3JpcHREZWJ1Z1Nl
cnZlcjo6ZGlzcGF0Y2hGdW5jdGlvblRvTGlzdGVuZXJzKToKKyAgICAgICAgKiBwYXJzZXIvUGFy
c2VyLmNwcDoKKwogMjAxNi0xMS0xNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgRXhjZXB0aW9uRnV6eiBuZWVkcyB0byBwbGFjYXRlIGV4Y2VwdGlvbiBjaGVjayB2
ZXJpZmljYXRpb24gYmVmb3JlIG92ZXJ3cml0aW5nIGEgdGhyb3duIGV4Y2VwdGlvbi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXgg
Y2YzYzYyNDdhNmRlNzlkZTk5YzlmZWJhN2M2Y2JkMjVlMGIyNTMxNC4uMDNhZTJiMzIwOThhNzA2
ZDYyOThkMzNmMDZiOTM2MGJiZmNlZWRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNi0xMS0x
NyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlND
XSBXVEY6OlRlbXBvcmFyeUNoYW5nZSB3aXRoIFdURjo6U2V0Rm9yU2NvcGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDc2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEphdmFTY3JpcHRDb3JlJ3MgYnl0
ZWNvbXBpbGVyL1NldEZvclNjb3BlLmggaXMgY29tcGxldGVseSB0aGUgc2FtZQorICAgICAgICB0
byBXVEY6OlRlbXBvcmFyeUNoYW5nZS4gU2V0Rm9yU2NvcGUgc291bmRzIGJldHRlciBuYW1lIHNp
bmNlIGl0CisgICAgICAgIHNheXMgdGhhdCB0aGlzIG9iamVjdCB3b3JrcyBhcyBTY29wZS4KKwor
ICAgICAgICBXZSByZW5hbWUgV1RGOjpUZW1wb3JhcnlDaGFuZ2UgdG8gV1RGOjpTZXRGb3JTY29w
ZS4gQW5kIHJlcGxhY2UKKyAgICAgICAgYWxsIHRoZSB1c2UgdG8gdGhpcyBXVEY6OlNldEZvclNj
b3BlLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogd3RmL1NldEZvclNjb3BlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9UZW1wb3Jh
cnlDaGFuZ2UuaC4KKyAgICAgICAgKFdURjo6U2V0Rm9yU2NvcGU6OlNldEZvclNjb3BlKToKKyAg
ICAgICAgKFdURjo6U2V0Rm9yU2NvcGU6On5TZXRGb3JTY29wZSk6CisKIDIwMTYtMTEtMTYgIFl1
c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0VTNl1bV2Vi
Q29yZV0gQ2hhbmdlIEVTNl9NT0RVTEVTIGNvbXBpbGUgdGltZSBmbGFnIHRvIHJ1bnRpbWUgZmxh
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDIzY2I3M2JjMWZmNWQ4NmU4OGIzMGIyMWNhNGFjZGU2NjFlMzg1MmEu
LjBkNGI4NGVkNTU2NGIzYjcwOTQzY2VmZTU2YTcyNjkxODE0ZWMwYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw5MCBAQAorMjAxNi0xMS0xNyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KKworICAgICAgICBbSlNDXSBXVEY6OlRlbXBvcmFyeUNoYW5nZSB3aXRoIFdURjo6
U2V0Rm9yU2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NDc2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjphYm9ydCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50UmVnaXN0cnlDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNDdXN0b21FbGVtZW50UmVnaXN0cnk6OmRlZmluZSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICogY3NzL0VsZW1lbnRS
dWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9y
OjptYXRjaFNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMpOgorICAgICAgICAqIGNzcy9TdHlsZVJl
c29sdmVyLmNwcDoKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlRmlsbFNob3J0aGFuZCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6cGFyc2U0VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VC
b3JkZXJSYWRpdXMpOgorICAgICAgICAqIGNzcy9wYXJzZXIvU1ZHQ1NTUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VTVkdWYWx1ZSk6CisgICAgICAgICogZG9t
L0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnN0eWxlRm9yRWxlbWVudElnbm9yaW5nUGVuZGluZ1N0eWxlc2hlZXRzKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkZXN0cm95UmVuZGVyVHJlZSk6CisgICAgICAg
ICogZG9tL0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0Ojpm
aXJlRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIGRvbS9NaWNyb3Rhc2tzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1pY3JvdGFza1F1ZXVlOjpwZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCk6
CisgICAgICAgICogaGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZUNhY2hlOjpwcnVuZVRvU2l6ZU5vdyk6CisgICAgICAgICogaHRtbC9ET01Ub2tlbkxpc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0Ojp1cGRhdGVBc3NvY2lhdGVkQXR0cmli
dXRlRnJvbVRva2Vucyk6CisgICAgICAgICogaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJlbG9hZFNjYW5uZXI6OnNjYW4pOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmg6CisgICAgICAgICogbG9hZGVy
L0NvbnRlbnRGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6aGFu
ZGxlUHJvdmlzaW9uYWxMb2FkRmFpbHVyZSk6CisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnBydW5lTGl2ZVJlc291cmNlc1RvU2l6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cHJ1bmVEZWFkUmVzb3VyY2VzVG9TaXplKToK
KyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1
bk1vZGFsKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldFNj
cm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6YXBwbHlSZWN1cnNp
dmVseVdpdGhWaXNpYmxlUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmF1dG9T
aXplSWZFbmFibGVkKToKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3ku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpkaWRSZWNlaXZl
SGVhZGVycyk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpjb21taXRUcmVlU3RhdGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdl
c0FmdGVyU3VibGF5ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVt
cG9yYXJ5T3BlbkdMU2V0dGluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdM
OjpkcmF3VGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnB1cmdlQmFja2luZ1N0b3Jlcyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzTGF5ZXJEaXJlY3QyRC5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZEhlbHBlcjo6d3JpdGVDbGlwYm9hcmRDb250ZW50cyk6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YmFyVGhlbWVNYWM6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJHZW9tZXRyeU1hcDo6cHVzaE1hcHBpbmdzVG9BbmNlc3Rvcik6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpoaXRUZXN0KToKKyAg
ICAgICAgKiByZXBsYXkvRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50TG9vcElucHV0RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hJbnB1dCk6CisgICAgICAg
ICogc3RvcmFnZS9TdG9yYWdlTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VNYXA6
OnNldEl0ZW1JZ25vcmluZ1F1b3RhKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aEJsZW5kZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJsZW5kZXI6OmFkZEFuaW1hdGVkUGF0aCk6CisK
IDIwMTYtMTEtMTYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAg
ICAgICAgW1dlYkNvcmVdIENsZWFuIHVwIHNjcmlwdCBsb2FkaW5nIGNvZGUgaW4gWE1MCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDZlOTc2MzAzMzlkNTYwMDMwNzYzZTljZDA5YWZjN2FlNjhmYmU5ZjUuLjNhNzQ2ZGQw
YWRkODlkNjg5N2I5NmZiZDMzZTdiNWMyNGFmYTJjMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTYtMTEtMTcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisK
KyAgICAgICAgW0pTQ10gV1RGOjpUZW1wb3JhcnlDaGFuZ2Ugd2l0aCBXVEY6OlNldEZvclNjb3Bl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ3NjEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHA6CisKIDIwMTYtMTEtMTQgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNb3Zl
IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyIHRvIFNlY3VyaXR5
T3JpZ2luRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGRkZDQ0Y2VmZTgwY2IzYWJkMTNlNjJkZTRl
NDg2NGRjZGQ3ZWNlMDguLjY1YzY5NjQ1MWY5MmVhMjk5M2M1ZDZjMzc3ZmQyYzE5OWNmM2NkODEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0xMS0xNyAgWXVzdWtlIFN1
enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBXVEY6OlRlbXBv
cmFyeUNoYW5nZSB3aXRoIFdURjo6U2V0Rm9yU2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDc2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXZWJWaWV3IHVwZGF0ZVRleHRUb3VjaEJhcl0pOgorCiAyMDE2LTExLTE2ICBZdXN1a2UgU3V6
dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtFUzZdW1dlYkNvcmVdIENo
YW5nZSBFUzZfTU9EVUxFUyBjb21waWxlIHRpbWUgZmxhZyB0byBydW50aW1lIGZsYWcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCA3ZTA2ZmRlZWU3ZWEyM2M2MzkyNDg1MGIyYjAzMzk4MjBmNGMxYzhkLi42YTlkMGYz
MWFlZmVlODE1MTg2NDJiMmQ1MjlmNjY2ZWY1Mzg1M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDAgQEAKKzIwMTYtMTEtMTcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW0pTQ10gV1RGOjpUZW1wb3JhcnlDaGFuZ2Ugd2l0aCBXVEY6OlNldEZvclNj
b3BlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ3
NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBs
dWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGx1Z2luQ29udHJvbGxlclByb3h5Ojppbml0aWFsaXplKToKKyAgICAgICAgKiBQbHVnaW5Qcm9j
ZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogU2hhcmVk
L0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tOgorICAgICAgICAoY3JlYXRlRW5jb2Rl
ZE9iamVjdCk6CisgICAgICAgIChkZWNvZGVPYmplY3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2tleWJvYXJkQ2hh
bmdlZFdpdGhJbmZvOmFkanVzdFNjcm9sbFZpZXc6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRl
VGV4dFRvdWNoQmFyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpTY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRy
ZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUGFzdGVib2FyZFByb3h5R3RrLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFzdGVib2FyZFByb3h5Ojp3cml0ZVRvQ2xpcGJvYXJkKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3Np
dGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGlu
YXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6Q29tcG9z
aXRpbmdDb29yZGluYXRvcjo6cHVyZ2VCYWNraW5nU3RvcmVzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1vdXNl
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjprZXlFdmVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmRpc3BhdGNoVG91Y2hFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNldEluaXRpYWxGb2N1cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omluc2Vy
dFRleHRBc3luYyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRl
eHQubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgor
CiAyMDE2LTExLTE2ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyMDg1ODkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRleCA0
MzdhMmVkZmI0NWVlMjM1YmM5NmYwOWFkNWUxOTQxNDQ1MjZkM2VlLi5lYWNlNGE2OTczNTJiNDFi
ZGM0MjRlMWE2OWRiNzIxY2U1NDQxMWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC0zOSw3ICszOSw2IEBA
CiAjaW5jbHVkZSAiTm9kZXMuaCIKICNpbmNsdWRlICJQYXJzZXJFcnJvci5oIgogI2luY2x1ZGUg
IlJlZ2lzdGVySUQuaCIKLSNpbmNsdWRlICJTZXRGb3JTY29wZS5oIgogI2luY2x1ZGUgIlN0YXRp
Y1Byb3BlcnR5QW5hbHl6ZXIuaCIKICNpbmNsdWRlICJTeW1ib2xUYWJsZS5oIgogI2luY2x1ZGUg
IlRlbXBsYXRlUmVnaXN0cnlLZXkuaCIKQEAgLTQ4LDYgKzQ3LDcgQEAKICNpbmNsdWRlIDx3dGYv
SGFzaFRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1NlZ21lbnRlZFZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL1NldEZvclNjb3BlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL1NldEZvclNjb3BlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGE4NTI1NjQ5N2M1MDRhNGU2MzMwNzBiY2JiY2U5YjY0MDI3MGI3OTQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9TZXRGb3JTY29wZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotCi1uYW1lc3BhY2Ug
SlNDIHsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWNsYXNzIFNldEZvclNjb3BlIHsKLXB1Ymxp
YzoKLSAgICBTZXRGb3JTY29wZShUJiBjdXJyZW50VmFsdWUsIGNvbnN0IFQmIG5ld1ZhbHVlKQot
ICAgICAgICA6IG1fcmVmKGN1cnJlbnRWYWx1ZSkKLSAgICAgICAgLCBtX29sZFZhbHVlKGN1cnJl
bnRWYWx1ZSkKLSAgICB7Ci0gICAgICAgIG1fcmVmID0gbmV3VmFsdWU7Ci0gICAgfQotCi0gICAg
U2V0Rm9yU2NvcGUoVCYgY3VycmVudFZhbHVlLCBUJiYgbmV3VmFsdWUpCi0gICAgICAgIDogbV9y
ZWYoY3VycmVudFZhbHVlKQotICAgICAgICAsIG1fb2xkVmFsdWUoY3VycmVudFZhbHVlKQotICAg
IHsKLSAgICAgICAgY3VycmVudFZhbHVlID0gV1RGTW92ZShuZXdWYWx1ZSk7Ci0gICAgfQotCi0g
ICAgflNldEZvclNjb3BlKCkKLSAgICB7Ci0gICAgICAgIG1fcmVmID0gbV9vbGRWYWx1ZTsKLSAg
ICB9Ci0KLXByaXZhdGU6Ci0gICAgVCYgbV9yZWY7Ci0gICAgVCBtX29sZFZhbHVlOwotfTsKLQot
fTsgLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlci5jcHAKaW5kZXggOGIyMDIyM2RiN2M4NjliNjliYjU5M2UzMmE0YTAxYzczMTUxZmIzNy4u
OThhY2QzMmRjZjQxMjQ2YjNmNGVjMmNmOGMzYWVhYjNhMjYxMjc4OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCkBAIC05OCw3ICs5OCw3IEBAIGNsYXNz
IERlYnVnZ2VyUGF1c2VkU2NvcGUgewogICAgIERlYnVnZ2VyJiBtX2RlYnVnZ2VyOwogfTsKIAot
Ly8gVGhpcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+LCBidXQgdGhh
dCBjYW5ub3QgYmUgdXNlZAorLy8gVGhpcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gU2V0Rm9yU2NvcGU8
Ym9vbD4sIGJ1dCB0aGF0IGNhbm5vdCBiZSB1c2VkCiAvLyBhcyB0aGUgbV9pc1BhdXNlZCBmaWVs
ZCB1c2VzIG9ubHkgb25lIGJpdC4KIGNsYXNzIFRlbXBvcmFyeVBhdXNlZFN0YXRlIHsKIHB1Ymxp
YzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAKaW5kZXggNjQzN2JiZGQwNDRiNDgyMmVkZTlm
MDZiNjE3ZjhmOWVlMzI1OWQ4ZC4uZTI5NWY0MGJlOWNkMGI4NTNjMTBjNDU5Yjg4Y2FlNjNiYTE5
MjE3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIAog
I2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kUm91dGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
VmFsdWVzLmgiCi0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0
Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgQmFja2Vu
ZERpc3BhdGNoZXI6OmRpc3BhdGNoKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICB7CiAgICAg
ICAgIC8vIEluIGNhc2UgdGhpcyBpcyBhIHJlLWVudHJhbnQgY2FsbCBmcm9tIGEgbmVzdGVkIHJ1
biBsb29wLCB3ZSBkb24ndCB3YW50IHRvIGxvc2UKICAgICAgICAgLy8gdGhlIG91dGVyIHJlcXVl
c3QncyBpZCBqdXN0IGJlY2F1c2UgdGhlIGlubmVyIHJlcXVlc3QgaXMgYm9ndXMuCi0gICAgICAg
IFRlbXBvcmFyeUNoYW5nZTxPcHRpb25hbDxsb25nPj4gc2NvcGVkUmVxdWVzdElkKG1fY3VycmVu
dFJlcXVlc3RJZCwgTnVsbG9wdCk7CisgICAgICAgIFNldEZvclNjb3BlPE9wdGlvbmFsPGxvbmc+
PiBzY29wZWRSZXF1ZXN0SWQobV9jdXJyZW50UmVxdWVzdElkLCBOdWxsb3B0KTsKIAogICAgICAg
ICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHBhcnNlZE1lc3NhZ2U7CiAgICAgICAgIGlmICghSW5z
cGVjdG9yVmFsdWU6OnBhcnNlSlNPTihtZXNzYWdlLCBwYXJzZWRNZXNzYWdlKSkgewpAQCAtMTQ1
LDcgKzE0NSw3IEBAIHZvaWQgQmFja2VuZERpc3BhdGNoZXI6OmRpc3BhdGNoKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKIAogICAgIHsKICAgICAgICAgLy8gV2UgY291bGQgYmUgY2FsbGVkIHJlLWVu
dHJhbnRseSBmcm9tIGEgbmVzdGVkIHJ1biBsb29wLCBzbyByZXN0b3JlIHRoZSBwcmV2aW91cyBp
ZC4KLSAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPE9wdGlvbmFsPGxvbmc+PiBzY29wZWRSZXF1ZXN0
SWQobV9jdXJyZW50UmVxdWVzdElkLCByZXF1ZXN0SWQpOworICAgICAgICBTZXRGb3JTY29wZTxP
cHRpb25hbDxsb25nPj4gc2NvcGVkUmVxdWVzdElkKG1fY3VycmVudFJlcXVlc3RJZCwgcmVxdWVz
dElkKTsKIAogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IG1ldGhvZFZhbHVlOwogICAg
ICAgICBpZiAoIW1lc3NhZ2VPYmplY3QtPmdldFZhbHVlKEFTQ0lJTGl0ZXJhbCgibWV0aG9kIiks
IG1ldGhvZFZhbHVlKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCA5YzVhYTc3NWE2N2NlOWY4ZGZhYzYwZmI0
NDkyMzk0ZjRjM2FhY2Y2Li43NTVmNWI4NTM1YzJlMmE0MDRkOGVhZDYwNWM3MDIxZjNmNjhkYWUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVn
U2VydmVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERl
YnVnU2VydmVyLmNwcApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgi
CiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1Nl
dEZvclNjb3BlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKQEAgLTE0Myw3ICsxNDMsNyBA
QCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRjaEJyZWFrcG9pbnRBY3Rpb25Mb2coRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbgogICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2UobV9j
YWxsaW5nTGlzdGVuZXJzLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9j
YWxsaW5nTGlzdGVuZXJzLCB0cnVlKTsKIAogICAgIFZlY3RvcjxTY3JpcHREZWJ1Z0xpc3RlbmVy
Kj4gbGlzdGVuZXJzQ29weTsKICAgICBjb3B5VG9WZWN0b3IobV9saXN0ZW5lcnMsIGxpc3RlbmVy
c0NvcHkpOwpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmRpc3Bh
dGNoQnJlYWtwb2ludEFjdGlvblNvdW5kKEV4ZWNTdGF0ZSosIGludCBicmVha3BvaW50CiAgICAg
aWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVGVtcG9y
YXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZShtX2NhbGxpbmdMaXN0ZW5lcnMsIHRydWUpOworICAgIFNl
dEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2NhbGxpbmdMaXN0ZW5lcnMsIHRydWUpOwogCiAgICAg
VmVjdG9yPFNjcmlwdERlYnVnTGlzdGVuZXIqPiBsaXN0ZW5lcnNDb3B5OwogICAgIGNvcHlUb1Zl
Y3RvcihtX2xpc3RlbmVycywgbGlzdGVuZXJzQ29weSk7CkBAIC0xNzUsNyArMTc1LDcgQEAgdm9p
ZCBTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlzcGF0Y2hCcmVha3BvaW50QWN0aW9uUHJvYmUoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBTY3IKICAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hhbmdlKG1fY2FsbGlu
Z0xpc3RlbmVycywgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1fY2FsbGlu
Z0xpc3RlbmVycywgdHJ1ZSk7CiAKICAgICB1bnNpZ25lZCBzYW1wbGVJZCA9IG1fbmV4dFByb2Jl
U2FtcGxlSWQrKzsKIApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6
OnNvdXJjZVBhcnNlZChFeGVjU3RhdGUqIGV4ZWMsIFNvdXJjZVByb3ZpZGVyKiBzb3VyY2VQcm92
CiAgICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
VGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZShtX2NhbGxpbmdMaXN0ZW5lcnMsIHRydWUpOwor
ICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2NhbGxpbmdMaXN0ZW5lcnMsIHRydWUpOwog
CiAgICAgYm9vbCBpc0Vycm9yID0gZXJyb3JMaW5lICE9IC0xOwogICAgIGlmIChpc0Vycm9yKQpA
QCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmRpc3BhdGNoRnVuY3Rp
b25Ub0xpc3RlbmVycyhKYXZhU2NyaXB0RXhlY3V0aW9uQ2FsbGJhY2sKICAgICBpZiAobV9saXN0
ZW5lcnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBUZW1wb3JhcnlDaGFuZ2U8
Ym9vbD4gY2hhbmdlKG1fY2FsbGluZ0xpc3RlbmVycywgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8
Ym9vbD4gY2hhbmdlKG1fY2FsbGluZ0xpc3RlbmVycywgdHJ1ZSk7CiAKICAgICBkaXNwYXRjaEZ1
bmN0aW9uVG9MaXN0ZW5lcnMobV9saXN0ZW5lcnMsIGNhbGxiYWNrKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCBjZTZiZmE3YTFmODMxMjQzMjY4OWNhN2M1
ZjAzNzZhODdiYTEwN2JiLi5hYmRhYjNhOTY1NmIwMzdhNTgwZjkxYWIwM2RjMGI3OTcwMGE5NTkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0yNiw5ICsyNiw5
IEBACiAjaW5jbHVkZSAiQVNUQnVpbGRlci5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyUGFyc2VEYXRh
LmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgotI2luY2x1ZGUgIlNldEZvclNjb3BlLmgiCiAj
aW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDx1dGlsaXR5PgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JT
Y29wZS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiAjZGVmaW5lIHVw
ZGF0ZUVycm9yTWVzc2FnZShzaG91bGRQcmludFRva2VuLCAuLi4pIGRvIHtcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3YTVmZWJiODE5ODY4OTY1Y2RlNmU1
YjZiNDIwMTRhMWU5ZDZmOGQ0Li5kMzZhMmRkMDQyOWUzZTYzMzdjMDNhYzhjYTgyZjQ4ZDU2YzJk
MDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4NCw3
ICsyODQsNyBAQAogCQlBOEE0NzQyQTE1MUE4MjVCMDA0MTIzRkYgLyogU3RkTGliRXh0cmFzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzMxMTE1
MUE4MjVCMDA0MTIzRkYgLyogU3RkTGliRXh0cmFzLmggKi87IH07CiAJCUE4QTQ3NDJDMTUxQTgy
NUIwMDQxMjNGRiAvKiBTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MzEzMTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdFeHRy
YXMuaCAqLzsgfTsKIAkJQThBNDc0MkQxNTFBODI1QjAwNDEyM0ZGIC8qIEhhc2hlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczMTQxNTFBODI1
QjAwNDEyM0ZGIC8qIEhhc2hlci5oICovOyB9OwotCQlBOEE0NzQzMzE1MUE4MjVCMDA0MTIzRkYg
LyogVGVtcG9yYXJ5Q2hhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEE0NzMxQTE1MUE4MjVCMDA0MTIzRkYgLyogVGVtcG9yYXJ5Q2hhbmdlLmgg
Ki87IH07CisJCUE4QTQ3NDMzMTUxQTgyNUIwMDQxMjNGRiAvKiBTZXRGb3JTY29wZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczMUExNTFBODI1
QjAwNDEyM0ZGIC8qIFNldEZvclNjb3BlLmggKi87IH07CiAJCUE4QTQ3NDM0MTUxQTgyNUIwMDQx
MjNGRiAvKiBBU0NJSUZhc3RQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEE0NzMxQzE1MUE4MjVCMDA0MTIzRkYgLyogQVNDSUlGYXN0UGF0aC5o
ICovOyB9OwogCQlBOEE0NzQzNTE1MUE4MjVCMDA0MTIzRkYgLyogQXRvbWljU3RyaW5nLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MzFEMTUx
QTgyNUIwMDQxMjNGRiAvKiBBdG9taWNTdHJpbmcuY3BwICovOyB9OwogCQlBOEE0NzQzNjE1MUE4
MjVCMDA0MTIzRkYgLyogQXRvbWljU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzMxRTE1MUE4MjVCMDA0MTIzRkYgLyogQXRvbWljU3Ry
aW5nLmggKi87IH07CkBAIC02NTMsNyArNjUzLDcgQEAKIAkJQThBNDczMTExNTFBODI1QjAwNDEy
M0ZGIC8qIFN0ZExpYkV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
dGRMaWJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDczMTMxNTFB
ODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0V4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdHJpbmdFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThB
NDczMTQxNTFBODI1QjAwNDEyM0ZGIC8qIEhhc2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBIYXNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThBNDcz
MUExNTFBODI1QjAwNDEyM0ZGIC8qIFRlbXBvcmFyeUNoYW5nZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUZW1wb3JhcnlDaGFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQThBNDczMUExNTFBODI1QjAwNDEyM0ZGIC8qIFNldEZvclNjb3BlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldEZvclNjb3BlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE4QTQ3MzFDMTUxQTgyNUIwMDQxMjNGRiAvKiBBU0NJSUZhc3RQYXRo
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFTQ0lJRmFzdFBhdGguaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDczMUQxNTFBODI1QjAwNDEyM0ZGIC8qIEF0
b21pY1N0cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdG9t
aWNTdHJpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzMxRTE1MUE4
MjVCMDA0MTIzRkYgLyogQXRvbWljU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEF0b21pY1N0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA2
NSw3ICsxMDY1LDcgQEAKIAkJCQkwRkREQkZBNjE2NjZERkEzMDBDNTVGRUYgLyogU3RyaW5nUHJp
bnRTdHJlYW0uaCAqLywKIAkJCQk1NTk3RjgyQzFEOTRCOTk3MDA2NkJDMjEgLyogU3luY2hyb25p
emVkRml4ZWRRdWV1ZS5oICovLAogCQkJCTBGQjMxN0MzMUM0ODgwMDEwMDdFMzk1QSAvKiBTeXN0
ZW1UcmFjaW5nLmggKi8sCi0JCQkJQThBNDczMUExNTFBODI1QjAwNDEyM0ZGIC8qIFRlbXBvcmFy
eUNoYW5nZS5oICovLAorCQkJCUE4QTQ3MzFBMTUxQTgyNUIwMDQxMjNGRiAvKiBTZXRGb3JTY29w
ZS5oICovLAogCQkJCUE4QTQ3MzJGMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRGdW5jdGlvbklu
dm9jYXRpb24uaCAqLywKIAkJCQlBOEE0NzMzMDE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkSWRl
bnRpZmllckRhdGFQdGhyZWFkcy5jcHAgKi8sCiAJCQkJQThBNDczMzExNTFBODI1QjAwNDEyM0ZG
IC8qIFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuaCAqLywKQEAgLTE0NzQsNyArMTQ3NCw3
IEBACiAJCQkJNzBFQ0E2MEUxQjAyNDI2ODAwNDQ5NzM5IC8qIFN5bWJvbEltcGwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTcwQTk5M0ZGMUFENzE1MTMwMEZBNjE1QiAvKiBTeW1ib2xSZWdpc3RyeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCMzE3QzQxQzQ4ODAwMTAwN0UzOTVBIC8qIFN5c3RlbVRy
YWNpbmcuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4QTQ3NDMzMTUxQTgyNUIwMDQxMjNGRiAvKiBU
ZW1wb3JhcnlDaGFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4QTQ3NDMzMTUxQTgyNUIwMDQx
MjNGRiAvKiBTZXRGb3JTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMxODFDODAxRDMwNzhE
QTAwRjVGQTE2IC8qIFRleHRCcmVha0l0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0
NzQ0NDE1MUE4MjVCMDA0MTIzRkYgLyogVGV4dFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEE0NzQ0NzE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NldEZvclNjb3BlLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9TZXRGb3JTY29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2OTVlZmExMTFkMTE5
MWVhNzY4YzBkYmU1MjRjNzdmODY2ODlmYjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9TZXRGb3JTY29wZS5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8vIFNl
dEZvclNjb3BlPD4gaXMgdXNlZnVsIGZvciBzZXR0aW5nIGEgdmFyaWFibGUgdG8gYSBuZXcgdmFs
dWUgb25seSB3aXRoaW4gYQorLy8gcGFydGljdWxhciBzY29wZS4gQW4gU2V0Rm9yU2NvcGU8PiBv
YmplY3QgY2hhbmdlcyBhIHZhcmlhYmxlIHRvIGl0cyBvcmlnaW5hbAorLy8gdmFsdWUgdXBvbiBk
ZXN0cnVjdGlvbiwgbWFraW5nIGl0IGFuIGFsdGVybmF0aXZlIHRvIHdyaXRpbmcgInZhciA9IGZh
bHNlOyIKKy8vIG9yICJ2YXIgPSBvbGRWYWw7IiBhdCBhbGwgb2YgYSBibG9jaydzIGV4aXQgcG9p
bnRzLgorLy8KKy8vIFRoaXMgc2hvdWxkIGJlIG9idmlvdXMsIGJ1dCBub3RlIHRoYXQgYW4gU2V0
Rm9yU2NvcGU8PiBpbnN0YW5jZSBzaG91bGQgaGF2ZSBhCisvLyBzaG9ydGVyIGxpZmV0aW1lIHRo
YW4gaXRzIHNjb3BlZFZhcmlhYmxlLCB0byBwcmV2ZW50IGludmFsaWQgbWVtb3J5IHdyaXRlcwor
Ly8gd2hlbiB0aGUgU2V0Rm9yU2NvcGU8PiBvYmplY3QgaXMgZGVzdHJveWVkLgorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgorY2xhc3MgU2V0Rm9yU2NvcGUgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFNldEZvclNjb3BlKTsKK3B1YmxpYzoKKyAgICBTZXRGb3JTY29wZShUJiBzY29wZWRWYXJp
YWJsZSkKKyAgICAgICAgOiBtX3Njb3BlZFZhcmlhYmxlKHNjb3BlZFZhcmlhYmxlKQorICAgICAg
ICAsIG1fb3JpZ2luYWxWYWx1ZShzY29wZWRWYXJpYWJsZSkKKyAgICB7CisgICAgfQorICAgIFNl
dEZvclNjb3BlKFQmIHNjb3BlZFZhcmlhYmxlLCBUIG5ld1ZhbHVlKQorICAgICAgICA6IFNldEZv
clNjb3BlKHNjb3BlZFZhcmlhYmxlKQorICAgIHsKKyAgICAgICAgbV9zY29wZWRWYXJpYWJsZSA9
IG5ld1ZhbHVlOworICAgIH0KKworICAgIH5TZXRGb3JTY29wZSgpCisgICAgeworICAgICAgICBt
X3Njb3BlZFZhcmlhYmxlID0gbV9vcmlnaW5hbFZhbHVlOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBUJiBtX3Njb3BlZFZhcmlhYmxlOworICAgIFQgbV9vcmlnaW5hbFZhbHVlOworfTsKKworfQor
Cit1c2luZyBXVEY6OlNldEZvclNjb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGVt
cG9yYXJ5Q2hhbmdlLmggYi9Tb3VyY2UvV1RGL3d0Zi9UZW1wb3JhcnlDaGFuZ2UuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzE3ZDBiNGYwZWQ2M2UwMGJjOWIxM2NmM2M0MjA2OTgy
MmQyZjBhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9UZW1wb3JhcnlDaGFuZ2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDcxICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaWZuZGVmIFRlbXBvcmFyeUNoYW5nZV9oCi0jZGVmaW5lIFRlbXBvcmFy
eUNoYW5nZV9oCi0KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNlIFdU
RiB7Ci0KLS8vIFRlbXBvcmFyeUNoYW5nZTw+IGlzIHVzZWZ1bCBmb3Igc2V0dGluZyBhIHZhcmlh
YmxlIHRvIGEgbmV3IHZhbHVlIG9ubHkgd2l0aGluIGEKLS8vIHBhcnRpY3VsYXIgc2NvcGUuIEFu
IFRlbXBvcmFyeUNoYW5nZTw+IG9iamVjdCBjaGFuZ2VzIGEgdmFyaWFibGUgdG8gaXRzIG9yaWdp
bmFsCi0vLyB2YWx1ZSB1cG9uIGRlc3RydWN0aW9uLCBtYWtpbmcgaXQgYW4gYWx0ZXJuYXRpdmUg
dG8gd3JpdGluZyAidmFyID0gZmFsc2U7IgotLy8gb3IgInZhciA9IG9sZFZhbDsiIGF0IGFsbCBv
ZiBhIGJsb2NrJ3MgZXhpdCBwb2ludHMuCi0vLwotLy8gVGhpcyBzaG91bGQgYmUgb2J2aW91cywg
YnV0IG5vdGUgdGhhdCBhbiBUZW1wb3JhcnlDaGFuZ2U8PiBpbnN0YW5jZSBzaG91bGQgaGF2ZSBh
Ci0vLyBzaG9ydGVyIGxpZmV0aW1lIHRoYW4gaXRzIHNjb3BlZFZhcmlhYmxlLCB0byBwcmV2ZW50
IGludmFsaWQgbWVtb3J5IHdyaXRlcwotLy8gd2hlbiB0aGUgVGVtcG9yYXJ5Q2hhbmdlPD4gb2Jq
ZWN0IGlzIGRlc3Ryb3llZC4KLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWNsYXNzIFRlbXBvcmFy
eUNoYW5nZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGVtcG9yYXJ5Q2hhbmdlKTsKLXB1
YmxpYzoKLSAgICBUZW1wb3JhcnlDaGFuZ2UoVCYgc2NvcGVkVmFyaWFibGUpCi0gICAgICAgIDog
bV9zY29wZWRWYXJpYWJsZShzY29wZWRWYXJpYWJsZSkKLSAgICAgICAgLCBtX29yaWdpbmFsVmFs
dWUoc2NvcGVkVmFyaWFibGUpCi0gICAgewotICAgIH0KLSAgICBUZW1wb3JhcnlDaGFuZ2UoVCYg
c2NvcGVkVmFyaWFibGUsIFQgbmV3VmFsdWUpCi0gICAgICAgIDogVGVtcG9yYXJ5Q2hhbmdlKHNj
b3BlZFZhcmlhYmxlKQotICAgIHsKLSAgICAgICAgbV9zY29wZWRWYXJpYWJsZSA9IG5ld1ZhbHVl
OwotICAgIH0KLQotICAgIH5UZW1wb3JhcnlDaGFuZ2UoKQotICAgIHsKLSAgICAgICAgbV9zY29w
ZWRWYXJpYWJsZSA9IG1fb3JpZ2luYWxWYWx1ZTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgVCYg
bV9zY29wZWRWYXJpYWJsZTsKLSAgICBUIG1fb3JpZ2luYWxWYWx1ZTsKLX07Ci0KLX0KLQotdXNp
bmcgV1RGOjpUZW1wb3JhcnlDaGFuZ2U7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAKaW5kZXggMGZkZWQwZTVhYjI2NmUyZmVhZGRjYTZl
ZDM3OGIwYTkzMjcwNjYzNy4uMGU3YmI2YmRhZDQ0NzU5OGM2YTI1ZWQ1MzZhNTU1ZWYwY2Q3MTZk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCkBA
IC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lbW9yeUlE
QkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIk1lbW9yeU9iamVjdFN0b3JlLmgiCi0jaW5jbHVk
ZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgSURCU2VydmVyIHsKQEAgLTIxMSw3ICsy
MTEsNyBAQCB2b2lkIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjphYm9ydCgpCiB7CiAg
ICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjphYm9ydCgp
Iik7CiAKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hhbmdlKG1faXNBYm9ydGluZywgdHJ1
ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1faXNBYm9ydGluZywgdHJ1ZSk7CiAK
ICAgICBmb3IgKGF1dG8gaXRlcmF0b3IgOiBtX29yaWdpbmFsSW5kZXhOYW1lcykKICAgICAgICAg
aXRlcmF0b3Iua2V5LT5yZW5hbWUoaXRlcmF0b3IudmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50UmVnaXN0cnlDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50UmVnaXN0cnlDdXN0b20u
Y3BwCmluZGV4IGI4YTNiODYxY2ExZGNkNDUzY2ZkMTE5NGY2MzNlMGEwYjk0YzRkN2EuLjliOWM5
YWY3OWYzOWMzNGZlZmEzMGVlZjI1ZmE2NzVjNjc3MmNhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3Rv
bS5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBKU1ZhbHVlIEpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5
OjpkZWZpbmUoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJv
cihzdGF0ZSwgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IGRlZmluZSBhIGN1c3RvbSBlbGVt
ZW50IHdoaWxlIGRlZmluaW5nIGFub3RoZXIgY3VzdG9tIGVsZW1lbnQiKSk7CiAgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hh
bmdlKHJlZ2lzdHJ5LmVsZW1lbnREZWZpbml0aW9uSXNSdW5uaW5nKCksIHRydWUpOworICAgIFNl
dEZvclNjb3BlPGJvb2w+IGNoYW5nZShyZWdpc3RyeS5lbGVtZW50RGVmaW5pdGlvbklzUnVubmlu
ZygpLCB0cnVlKTsKIAogICAgIGlmIChyZWdpc3RyeS5maW5kSW50ZXJmYWNlKGxvY2FsTmFtZSkp
IHsKICAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUsIEFTQ0lJTGl0
ZXJhbCgiQ2Fubm90IGRlZmluZSBtdWx0aXBsZSBjdXN0b20gZWxlbWVudHMgd2l0aCB0aGUgc2Ft
ZSB0YWcgbmFtZSIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5jcHAKaW5kZXggNDUxMDJlZmZjMTBlZGY4YjA2ZmExOGE4ZDdhMmZhMGU1MDlhY2Nh
Zi4uMjA4N2E4NmY3M2Y2YjI2YjQ3Nzg1MzRkYTZkZDFiYWY3YTRhOTA3MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTU5LDcgKzU5
LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNN
b2R1bGVSZWNvcmQuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24uaD4K
LSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNj
b3BlLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1Rl
eHRQb3NpdGlvbi5oPgogCkBAIC0yNTIsNyArMjUyLDcgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdENv
bnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU01vZHVsZVJl
Y28KIAogICAgIGF1dG8mIHNoZWxsID0gKndpbmRvd1NoZWxsKHdvcmxkKTsKICAgICBhdXRvJiBz
dGF0ZSA9ICpzaGVsbC53aW5kb3coKS0+Z2xvYmFsRXhlYygpOwotICAgIFRlbXBvcmFyeUNoYW5n
ZTxjb25zdCBTdHJpbmcqPiBzb3VyY2VVUkxTY29wZShtX3NvdXJjZVVSTCwgJnNvdXJjZVVSTC5z
dHJpbmcoKSk7CisgICAgU2V0Rm9yU2NvcGU8Y29uc3QgU3RyaW5nKj4gc291cmNlVVJMU2NvcGUo
bV9zb3VyY2VVUkwsICZzb3VyY2VVUkwuc3RyaW5nKCkpOwogCiAgICAgUmVmPEZyYW1lPiBwcm90
ZWN0b3IobV9mcmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50
UnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0
b3IuY3BwCmluZGV4IGUyYmY3Nzg0ODJkNTc2N2YyYTkwMmY5MjUwNTU3NDVhYzJhMWNkYmEuLmNm
YjlkOTExYmIyZTQwZTM1N2VmZDM4NjcyNWIzOGY0OTg1MzM5YzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApAQCAtNDYsNyArNDYsNyBAQAogI2luY2x1
ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlN0eWxlU2NvcGUuaCIKICNpbmNsdWRl
ICJTdHlsZWRFbGVtZW50LmgiCi0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTI4
MCw3ICsyODAsNyBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaFNsb3R0ZWRQc2V1
ZG9FbGVtZW50UnVsZXMoTWF0Y2hSZXF1ZXN0JiBtYXRjaFJlcQogICAgICAgICBpZiAoIXNsb3R0
ZWRQc2V1ZG9FbGVtZW50UnVsZXMpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgLy8g
TWF0Y2ggaW4gdGhlIGN1cnJlbnQgc2NvcGUuCi0gICAgICAgIFRlbXBvcmFyeUNoYW5nZTxib29s
PiBjaGFuZ2UobV9pc01hdGNoaW5nU2xvdHRlZFBzZXVkb0VsZW1lbnRzLCB0cnVlKTsKKyAgICAg
ICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1faXNNYXRjaGluZ1Nsb3R0ZWRQc2V1ZG9FbGVt
ZW50cywgdHJ1ZSk7CiAKICAgICAgICAgTWF0Y2hSZXF1ZXN0IHNjb3BlTWF0Y2hSZXF1ZXN0KG51
bGxwdHIsIG1hdGNoUmVxdWVzdC5pbmNsdWRlRW1wdHlSdWxlcywgbWF0Y2hSZXF1ZXN0LnRyZWVD
b250ZXh0T3JkaW5hbCk7CiAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChzbG90
dGVkUHNldWRvRWxlbWVudFJ1bGVzLmdldCgpLCBzY29wZU1hdGNoUmVxdWVzdCwgcnVsZVJhbmdl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAwZGM1OTc2YTEzODExZTI3
OTZkOWY3ZTUyNTUzZTk4MDU2NWExMzNhLi4xOWE3MDM3NWVhZTRhMmE2NjkyNTkyZTA3N2M2YTY3
YmQ5NDc2ZWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xMzgsOCAr
MTM4LDggQEAKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNpbmNsdWRlICJY
TUxOYW1lcy5oIgogI2luY2x1ZGUgPGJpdHNldD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUu
aD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFy
eUNoYW5nZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9taWNTdHJpbmdIYXNoLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNw
cAppbmRleCAyYTAwYzMyNzAyY2Q4YTY1NDFiZTlmODRhZjZjNzE1M2E0NTkwMmE2Li5iMWZiMTEy
ZDNkMjEwNGQ2ZTQzZWM2OThlM2RhMzMyMjBhOTUwYmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXIuY3BwCkBAIC0xMTIsOCArMTEyLDggQEAKICNpbmNsdWRlIDxsaW1pdHMu
aD4KICNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KICNpbmNsdWRlIDx3
dGYvZHRvYS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1ZmZlci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KQEAgLTM0MTYsNyArMzQxNiw3IEBAIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZUZpbGxTaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGNvbnN0IENT
U1Byb3BlcnR5SUQqIHByCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFNob3J0aGFuZFNj
b3BlIHNjb3BlKHRoaXMsIHByb3BJZCk7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5n
ZShtX2ltcGxpY2l0U2hvcnRoYW5kKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9p
bXBsaWNpdFNob3J0aGFuZCk7CiAKICAgICBib29sIHBhcnNlZFByb3BlcnR5W2NNYXhGaWxsUHJv
cGVydGllc10gPSB7IGZhbHNlIH07CiAgICAgUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZXNbY01heEZp
bGxQcm9wZXJ0aWVzXTsKQEAgLTM4MTIsNyArMzgxMiw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BJZCwgY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0
aGFuCiAKICAgICAvLyBGaWxsIGluIGFueSByZW1haW5pbmcgcHJvcGVydGllcyB3aXRoIHRoZSBp
bml0aWFsIHZhbHVlLgogICAgIGF1dG8mIGNzc1ZhbHVlUG9vbCA9IENTU1ZhbHVlUG9vbDo6c2lu
Z2xldG9uKCk7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZShtX2ltcGxpY2l0U2hv
cnRoYW5kLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9pbXBsaWNpdFNo
b3J0aGFuZCwgdHJ1ZSk7CiAgICAgY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCogcHJvcGVy
dGllc0ZvckluaXRpYWxpemF0aW9uID0gc2hvcnRoYW5kLnByb3BlcnRpZXNGb3JJbml0aWFsaXph
dGlvbigpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaG9ydGhhbmQubGVuZ3RoKCk7
ICsraSkgewogICAgICAgICBpZiAocHJvcGVydHlGb3VuZFtpXSkKQEAgLTM4NDksNyArMzg0OSw3
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZTRWYWx1ZXMoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGNv
bnN0IENTU1Byb3BlcnR5SUQgKnByb3BlcnRpCiAgICAgICAgICAgICBpZiAoIXBhcnNlVmFsdWUo
cHJvcGVydGllc1swXSwgaW1wb3J0YW50KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICBDU1NWYWx1ZSogdmFsdWUgPSBtX3BhcnNlZFByb3BlcnRpZXMubGFzdCgp
LnZhbHVlKCk7Ci0gICAgICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hhbmdlKG1faW1w
bGljaXRTaG9ydGhhbmQsIHRydWUpOworICAgICAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hh
bmdlKG1faW1wbGljaXRTaG9ydGhhbmQsIHRydWUpOwogICAgICAgICAgICAgYWRkUHJvcGVydHko
cHJvcGVydGllc1sxXSwgdmFsdWUsIGltcG9ydGFudCk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0
eShwcm9wZXJ0aWVzWzJdLCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICAgICAgICAgIGFkZFByb3Bl
cnR5KHByb3BlcnRpZXNbM10sIHZhbHVlLCBpbXBvcnRhbnQpOwpAQCAtMzg1OSw3ICszODU5LDcg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlNFZhbHVlcyhDU1NQcm9wZXJ0eUlEIHByb3BJZCwgY29u
c3QgQ1NTUHJvcGVydHlJRCAqcHJvcGVydGkKICAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShw
cm9wZXJ0aWVzWzBdLCBpbXBvcnRhbnQpIHx8ICFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMV0sIGlt
cG9ydGFudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgQ1NT
VmFsdWUqIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzW21fcGFyc2VkUHJvcGVydGllcy5zaXpl
KCkgLSAyXS52YWx1ZSgpOwotICAgICAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5n
ZShtX2ltcGxpY2l0U2hvcnRoYW5kLCB0cnVlKTsKKyAgICAgICAgICAgIFNldEZvclNjb3BlPGJv
b2w+IGNoYW5nZShtX2ltcGxpY2l0U2hvcnRoYW5kLCB0cnVlKTsKICAgICAgICAgICAgIGFkZFBy
b3BlcnR5KHByb3BlcnRpZXNbMl0sIHZhbHVlLCBpbXBvcnRhbnQpOwogICAgICAgICAgICAgdmFs
dWUgPSBtX3BhcnNlZFByb3BlcnRpZXNbbV9wYXJzZWRQcm9wZXJ0aWVzLnNpemUoKSAtIDJdLnZh
bHVlKCk7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wZXJ0aWVzWzNdLCB2YWx1ZSwgaW1w
b3J0YW50KTsKQEAgLTM4NjksNyArMzg2OSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZTRWYWx1
ZXMoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGNvbnN0IENTU1Byb3BlcnR5SUQgKnByb3BlcnRpCiAg
ICAgICAgICAgICBpZiAoIXBhcnNlVmFsdWUocHJvcGVydGllc1swXSwgaW1wb3J0YW50KSB8fCAh
cGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzFdLCBpbXBvcnRhbnQpIHx8ICFwYXJzZVZhbHVlKHByb3Bl
cnRpZXNbMl0sIGltcG9ydGFudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAgICAgQ1NTVmFsdWUqIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzW21fcGFyc2VkUHJv
cGVydGllcy5zaXplKCkgLSAyXS52YWx1ZSgpOwotICAgICAgICAgICAgVGVtcG9yYXJ5Q2hhbmdl
PGJvb2w+IGNoYW5nZShtX2ltcGxpY2l0U2hvcnRoYW5kLCB0cnVlKTsKKyAgICAgICAgICAgIFNl
dEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2ltcGxpY2l0U2hvcnRoYW5kLCB0cnVlKTsKICAgICAg
ICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNbM10sIHZhbHVlLCBpbXBvcnRhbnQpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg2MjQsNyArODYyNCw3IEBAIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZUJvcmRlclJhZGl1cyhDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBv
cnRhbnQpCiAgICAgfSBlbHNlCiAgICAgICAgIGNvbXBsZXRlQm9yZGVyUmFkaWkocmFkaWlbMV0p
OwogCi0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZShtX2ltcGxpY2l0U2hvcnRoYW5k
LCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9pbXBsaWNpdFNob3J0aGFu
ZCwgdHJ1ZSk7CiAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJUb3BMZWZ0UmFkaXVz
LCBjcmVhdGVQcmltaXRpdmVWYWx1ZVBhaXIoV1RGTW92ZShyYWRpaVswXVswXSksIFdURk1vdmUo
cmFkaWlbMV1bMF0pKSwgaW1wb3J0YW50KTsKICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJv
cmRlclRvcFJpZ2h0UmFkaXVzLCBjcmVhdGVQcmltaXRpdmVWYWx1ZVBhaXIoV1RGTW92ZShyYWRp
aVswXVsxXSksIFdURk1vdmUocmFkaWlbMV1bMV0pKSwgaW1wb3J0YW50KTsKICAgICBhZGRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzLCBjcmVhdGVQcmltaXRpdmVW
YWx1ZVBhaXIoV1RGTW92ZShyYWRpaVswXVsyXSksIFdURk1vdmUocmFkaWlbMV1bMl0pKSwgaW1w
b3J0YW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU1ZHQ1NTUGFy
c2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU1ZHQ1NTUGFyc2VyLmNwcAppbmRl
eCBlMzQ1ZjljYzE1Yzg1YjZmM2MxMzg5NjhjNjMyMjg0N2M4NmRkYWYzLi4yM2MyYTE1ZDJlYjQ1
MjEwYjEwZWMwNzM4MWM0NGJiMzA3OTRjNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL1NWR0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9TVkdDU1NQYXJzZXIuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGhl
bWUuaCIKICNpbmNsdWRlICJTVkdQYWludC5oIgogCi0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNo
YW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTIxMyw3ICsyMTMsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VTVkdWYWx1ZShD
U1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0
eU1hcmtlcjoKICAgICB7CiAgICAgICAgIFNob3J0aGFuZFNjb3BlIHNjb3BlKHRoaXMsIHByb3BJ
ZCk7Ci0gICAgICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2UobV9pbXBsaWNpdFNob3J0
aGFuZCwgdHJ1ZSk7CisgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2ltcGxpY2l0
U2hvcnRoYW5kLCB0cnVlKTsKICAgICAgICAgaWYgKCFwYXJzZVZhbHVlKENTU1Byb3BlcnR5TWFy
a2VyU3RhcnQsIGltcG9ydGFudCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IGlmIChtX3ZhbHVlTGlzdC0+Y3VycmVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9t
RWxlbWVudFJlZ2lzdHJ5LmgKaW5kZXggODgzM2UzYWIwZmNjNjQwOWM3ZGFlNDM4ZDY4NzRiNGQ5
NmJlZDM5MC4uMTEyMDk3YjFjMjgzZjhjMDg0NDdmMWQwYWMzMTVmZmM2ZTNhMWIyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVnaXN0cnkuaApAQCAtMjgsNyArMjgsNyBA
QAogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2Uu
aD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
aWNTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CiAKQEAg
LTc2LDcgKzc2LDcgQEAgY2xhc3MgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5IDogcHVibGljIFJlZkNv
dW50ZWQ8Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5PiB7CiAKICAgICBib29sIG1fZWxlbWVudERlZmlu
aXRpb25Jc1J1bm5pbmcgeyBmYWxzZSB9OwogCi0gICAgZnJpZW5kIGNsYXNzIEVsZW1lbnREZWZp
bml0aW9uSXNSdW5uaW5nVGVtcG9yYXJ5Q2hhbmdlOworICAgIGZyaWVuZCBjbGFzcyBFbGVtZW50
RGVmaW5pdGlvbklzUnVubmluZ1NldEZvclNjb3BlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggZWYxMjZiYzk3YzRiMDIzMzhlNjg2ODVkYjZkNDBlMDhmOWNhNGZmNC4uYmYy
YWFhYjBmZjI4Yzg3ZDM4MzM0Y2U0NTIzNGFmZDA2MmJkYmUyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0xOTIsOCArMTkyLDggQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2Fs
bFN0YWNrLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8
d3RmL1N5c3RlbVRyYWNpbmcuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVmZmVyLmg+CiAjaW5jbHVkZSA8eWFyci9SZWd1bGFy
RXhwcmVzc2lvbi5oPgogCkBAIC0xODQwLDcgKzE4NDAsNyBAQCB2b2lkIERvY3VtZW50OjpyZWNh
bGNTdHlsZShTdHlsZTo6Q2hhbmdlIGNoYW5nZSkKICAgICAgICAgbV9pblN0eWxlUmVjYWxjID0g
ZmFsc2U7CiAKICAgICAgICAgaWYgKHN0eWxlVXBkYXRlKSB7Ci0gICAgICAgICAgICBUZW1wb3Jh
cnlDaGFuZ2U8Ym9vbD4gaW5SZW5kZXJUcmVlVXBkYXRlKG1faW5SZW5kZXJUcmVlVXBkYXRlLCB0
cnVlKTsKKyAgICAgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGluUmVuZGVyVHJlZVVwZGF0ZSht
X2luUmVuZGVyVHJlZVVwZGF0ZSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIFJlbmRlclRyZWVVcGRh
dGVyIHVwZGF0ZXIoKnRoaXMpOwogICAgICAgICAgICAgdXBkYXRlci5jb21taXQoV1RGTW92ZShz
dHlsZVVwZGF0ZSkpOwpAQCAtMTk2OSw3ICsxOTY5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbmRl
clN0eWxlPiBEb2N1bWVudDo6c3R5bGVGb3JFbGVtZW50SWdub3JpbmdQZW5kaW5nU3R5bGVzaGVl
dHMKICAgICAvLyBPbiBpT1MgcmVxdWVzdCBkZWxlZ2F0ZXMgY2FsbGVkIGR1cmluZyBzdHlsZUZv
ckVsZW1lbnQgbWF5IHJlc3VsdCBpbiByZS1lbnRlcmluZyBXZWJLaXQgYW5kIGtpbGxpbmcgdGhl
IHN0eWxlIHJlc29sdmVyLgogICAgIFN0eWxlOjpQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJs
ZXIgZGlzYWJsZXIoKnRoaXMpOwogCi0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZSht
X2lnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cywgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4g
Y2hhbmdlKG1faWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzLCB0cnVlKTsKICAgICBhdXRvIGVsZW1l
bnRTdHlsZSA9IGVsZW1lbnQucmVzb2x2ZVN0eWxlKHBhcmVudFN0eWxlKTsKIAogICAgIGlmIChl
bGVtZW50U3R5bGUucmVsYXRpb25zKSB7CkBAIC0yMjE4LDcgKzIyMTgsNyBAQCB2b2lkIERvY3Vt
ZW50OjpkZXN0cm95UmVuZGVyVHJlZSgpCiAgICAgQVNTRVJUKGhhc0xpdmluZ1JlbmRlclRyZWUo
KSk7CiAgICAgQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgIT0gSW5QYWdlQ2FjaGUpOwogCi0gICAg
VGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZShtX3JlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCwg
dHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1fcmVuZGVyVHJlZUJlaW5nRGVz
dHJveWVkLCB0cnVlKTsKIAogICAgIGlmICh0aGlzID09ICZ0b3BEb2N1bWVudCgpKQogICAgICAg
ICBjbGVhckFYT2JqZWN0Q2FjaGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCmluZGV4
IDYxNjQ1ZWZlZjE5ZmM4YzI5MmRhM2M5MzEwMzU5ZWYzMWRjZGNjNzEuLjZjNmU2YjAzNTQ4NGRi
NmUyODQyMzk0NTFlOWNkOTZkZjg4MGU1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNw
cApAQCAtNDIsOCArNDIsOCBAQAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUg
PHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNs
dWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV1RGOwpAQCAtMTk0LDcgKzE5NCw3IEBAIGJvb2wgRXZlbnRUYXJnZXQ6
OmZpcmVFdmVudExpc3RlbmVycyhFdmVudCYgZXZlbnQpCiAgICAgaWYgKCFkYXRhKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBmaXJpbmdFdmVudExp
c3RlbmVyc1Njb3BlKGRhdGEtPmlzRmlyaW5nRXZlbnRMaXN0ZW5lcnMsIHRydWUpOworICAgIFNl
dEZvclNjb3BlPGJvb2w+IGZpcmluZ0V2ZW50TGlzdGVuZXJzU2NvcGUoZGF0YS0+aXNGaXJpbmdF
dmVudExpc3RlbmVycywgdHJ1ZSk7CiAKICAgICBpZiAoYXV0byogbGlzdGVuZXJzVmVjdG9yID0g
ZGF0YS0+ZXZlbnRMaXN0ZW5lck1hcC5maW5kKGV2ZW50LnR5cGUoKSkpIHsKICAgICAgICAgZmly
ZUV2ZW50TGlzdGVuZXJzKGV2ZW50LCAqbGlzdGVuZXJzVmVjdG9yKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NaWNyb3Rhc2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NaWNy
b3Rhc2tzLmNwcAppbmRleCBjYjRmMzRjODhmZWNlMzVkM2ZlMDY5ZTE1Zjg3M2M5ODIzYjc2YTYx
Li4xOTZkZmVkMTAyMDY0MzVmNmZlY2U0YzdhODU5MTQ2ZmNlYjlmOGY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTWljcm90YXNrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L01pY3JvdGFza3MuY3BwCkBAIC0yMyw3ICsyMyw3IEBACiAjaW5jbHVkZSAiTWljcm90YXNrcy5o
IgogCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5
Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtODQsNyArODQsNyBAQCB2b2lkIE1pY3JvdGFza1F1ZXVlOjpwZXJmb3JtTWlj
cm90YXNrQ2hlY2twb2ludCgpCiAgICAgaWYgKG1fcGVyZm9ybWluZ01pY3JvdGFza0NoZWNrcG9p
bnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2Uo
bV9wZXJmb3JtaW5nTWljcm90YXNrQ2hlY2twb2ludCwgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8
Ym9vbD4gY2hhbmdlKG1fcGVyZm9ybWluZ01pY3JvdGFza0NoZWNrcG9pbnQsIHRydWUpOwogCiAg
ICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxNaWNyb3Rhc2s+PiBxdWV1ZSA9IFdURk1vdmUobV9t
aWNyb3Rhc2tRdWV1ZSk7CiAgICAgZm9yIChhdXRvJiB0YXNrIDogcXVldWUpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvUGFnZUNhY2hlLmNwcAppbmRleCA1ZTVlZGExMzIzNGE0ZmI5NTNjMDU1NWQ5N2Jj
YTAxNDg0ODA3MDlhLi5lYjYxYTM0NTE3MzY3NDRjZGVlM2NhMDZiNTZlZWRhYThhZGZjZTk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCkBAIC01Miw3ICs1Miw3IEBACiAjaW5j
bHVkZSAiU3ViZnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hh
bmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CiAKQEAg
LTI5MSw3ICsyOTEsNyBAQCBib29sIFBhZ2VDYWNoZTo6Y2FuQ2FjaGUoUGFnZSYgcGFnZSkgY29u
c3QKIAogdm9pZCBQYWdlQ2FjaGU6OnBydW5lVG9TaXplTm93KHVuc2lnbmVkIHNpemUsIFBydW5p
bmdSZWFzb24gcHJ1bmluZ1JlYXNvbikKIHsKLSAgICBUZW1wb3JhcnlDaGFuZ2U8dW5zaWduZWQ+
IGNoYW5nZShtX21heFNpemUsIHNpemUpOworICAgIFNldEZvclNjb3BlPHVuc2lnbmVkPiBjaGFu
Z2UobV9tYXhTaXplLCBzaXplKTsKICAgICBwcnVuZShwcnVuaW5nUmVhc29uKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCmluZGV4IGVjN2NjNDEwNDEyMzVhZjVmY2I5OTYx
ODQ3NzY5ZDNlNTdmOGExMTQuLmIxYTU1Y2MyOTVlZWFjZWI0Mzg4NjA4MzlkOWZjMmVhNWIxNGVj
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKQEAgLTMwLDcgKzMwLDcgQEAK
ICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmlu
Zy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNo
YW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0F0b21pY1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAKQEAgLTI1Miw3ICsyNTIsNyBAQCB2b2lkIERPTVRva2VuTGlzdDo6dXBkYXRlQXNzb2NpYXRl
ZEF0dHJpYnV0ZUZyb21Ub2tlbnMoKQogICAgIH0KICAgICBBdG9taWNTdHJpbmcgc2VyaWFsaXpl
ZFZhbHVlID0gYnVpbGRlci50b0F0b21pY1N0cmluZygpOwogCi0gICAgVGVtcG9yYXJ5Q2hhbmdl
PGJvb2w+IGluQXR0cmlidXRlVXBkYXRlKG1faW5VcGRhdGVBc3NvY2lhdGVkQXR0cmlidXRlRnJv
bVRva2VucywgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5BdHRyaWJ1dGVVcGRhdGUo
bV9pblVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zLCB0cnVlKTsKICAgICBtX2Vs
ZW1lbnQuc2V0QXR0cmlidXRlKG1fYXR0cmlidXRlTmFtZSwgc2VyaWFsaXplZFZhbHVlKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5u
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3Bw
CmluZGV4IGEwOWIxMzVmNjVmMmZhY2MyNjg5YzQ4MDc4MzkxNDJkOGE2ZDhiYWMuLmRmMzc0MWI4
NmIwMTQzYTNmNDFkYWFhYmExNDFhNjA0OTljMDkxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNp
bmNsdWRlICJDU1NQcmVsb2FkU2Nhbm5lci5oIgogCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9t
cy5oIgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0
Rm9yU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Myw3ICs1Myw3IEBAIHZv
aWQgQ1NTUHJlbG9hZFNjYW5uZXI6OnJlc2V0KCkKIHZvaWQgQ1NTUHJlbG9hZFNjYW5uZXI6OnNj
YW4oY29uc3QgSFRNTFRva2VuOjpEYXRhVmVjdG9yJiBkYXRhLCBQcmVsb2FkUmVxdWVzdFN0cmVh
bSYgcmVxdWVzdHMpCiB7CiAgICAgQVNTRVJUKCFtX3JlcXVlc3RzKTsKLSAgICBUZW1wb3JhcnlD
aGFuZ2U8UHJlbG9hZFJlcXVlc3RTdHJlYW0qPiBjaGFuZ2UobV9yZXF1ZXN0cywgJnJlcXVlc3Rz
KTsKKyAgICBTZXRGb3JTY29wZTxQcmVsb2FkUmVxdWVzdFN0cmVhbSo+IGNoYW5nZShtX3JlcXVl
c3RzLCAmcmVxdWVzdHMpOwogCiAgICAgZm9yIChVQ2hhciBjIDogZGF0YSkgewogICAgICAgICBp
ZiAobV9zdGF0ZSA9PSBEb25lUGFyc2luZ0ltcG9ydFJ1bGVzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgKaW5kZXggMDJlOTNlOTQxZjdh
OTNjYzVhZmNmNjVkMjVjNDM0YjAzZmIwYTAyMS4uMzNlMWJiODU2NjJkYWUxMzQ1YjU2Zjg4MGU0
NTQ5MTBiYjdjMGU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TENvbnN0cnVjdGlvblNpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
Q29uc3RydWN0aW9uU2l0ZS5oCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1h
dHRpbmdFbGVtZW50TGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5j
bHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC0xNzAsNyArMTcwLDcgQEAgY2xhc3MgSFRNTENvbnN0cnVjdGlv
blNpdGUgewogICAgICAgICB7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFRlbXBvcmFyeUNo
YW5nZTxib29sPiBtX3JlZGlyZWN0QXR0YWNoVG9Gb3N0ZXJQYXJlbnRDaGFuZ2U7CisgICAgICAg
IFNldEZvclNjb3BlPGJvb2w+IG1fcmVkaXJlY3RBdHRhY2hUb0Zvc3RlclBhcmVudENoYW5nZTsK
ICAgICB9OwogCiAgICAgc3RhdGljIGJvb2wgaXNGb3JtYXR0aW5nVGFnKGNvbnN0IEF0b21pY1N0
cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0NvbnRlbnRGaWx0ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0NvbnRlbnRGaWx0ZXIuY3BwCmluZGV4IDlhYjQ5
Mjk1NzEyZjk3NWE0OGViYzg0ZTYzYzkxYjI5MDVmYTc2MzcuLjZmMmU1MDM3NjVlMWEyZjEyZjI4
ZmM2YzM4OWM4Y2RkMjY5YzIzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
b250ZW50RmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29udGVudEZpbHRl
ci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0jaW5jbHVk
ZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogI2lmICFMT0dfRElTQUJMRUQKQEAgLTI5Miw3ICsy
OTIsNyBAQCB2b2lkIENvbnRlbnRGaWx0ZXI6OmhhbmRsZVByb3Zpc2lvbmFsTG9hZEZhaWx1cmUo
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcmVw
bGFjZW1lbnREYXRhIHsgbV9ibG9ja2luZ0NvbnRlbnRGaWx0ZXItPnJlcGxhY2VtZW50RGF0YSgp
IH07CiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSB7IFVSTCgpLCBBU0NJSUxpdGVyYWwo
InRleHQvaHRtbCIpLCByZXBsYWNlbWVudERhdGEtPnNpemUoKSwgQVNDSUlMaXRlcmFsKCJVVEYt
OCIpIH07CiAgICAgU3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEgeyBXVEZNb3ZlKHJlcGxh
Y2VtZW50RGF0YSksIGVycm9yLmZhaWxpbmdVUkwoKSwgcmVzcG9uc2UsIFN1YnN0aXR1dGVEYXRh
OjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHk6OkhpZGRlbiB9OwotICAgIFRlbXBvcmFyeUNoYW5n
ZTxib29sPiBsb2FkaW5nQmxvY2tlZFBhZ2UgeyBtX2lzTG9hZGluZ0Jsb2NrZWRQYWdlLCB0cnVl
IH07CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gbG9hZGluZ0Jsb2NrZWRQYWdlIHsgbV9pc0xvYWRp
bmdCbG9ja2VkUGFnZSwgdHJ1ZSB9OwogICAgIG1fZG9jdW1lbnRMb2FkZXIuZnJhbWVMb2FkZXIo
KS0+bG9hZChGcmFtZUxvYWRSZXF1ZXN0KG1fZG9jdW1lbnRMb2FkZXIuZnJhbWUoKSwgYmxvY2tl
ZFBhZ2VVUkwoKSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cs
IHN1YnN0aXR1dGVEYXRhKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuY3BwCmluZGV4IGMzM2E4YzlhODhlNzNkOGU5YjFlODc0MTc5N2QwYzgzNTg2Zjk5
MGQuLjZkMTYwNjczOTk2YzJjYzI5NDU2NmY1ZTk3M2YzNWNhZTI5NjZmZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApAQCAtNDUsOCArNDUsOCBAQAog
I2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgorI2luY2x1ZGUgPHd0Zi9T
ZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNsdWRlIDx3
dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAj
aWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L01lbW9yeUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNo
ZS5jcHAKaW5kZXggMDY2ZjQ3ZTBiMTk2NzIxODVmY2ZhZWMwOTM2YjZmYmM2ZmE5MDllMy4uZDhk
MzBkZmM0ZWU5MTAzYjM0ZGY4YTE3YmJkNDc1ZGQ4YTllODI3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCkBAIC00Myw3ICs0Myw3IEBACiAjaW5jbHVk
ZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdl
Lmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMTQsNyArMzE0LDcgQEAgdm9pZCBN
ZW1vcnlDYWNoZTo6cHJ1bmVMaXZlUmVzb3VyY2VzVG9TaXplKHVuc2lnbmVkIHRhcmdldFNpemUs
IGJvb2wgc2hvdWxkRGVzdHIKIHsKICAgICBpZiAobV9pblBydW5lUmVzb3VyY2VzKQogICAgICAg
ICByZXR1cm47Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHJlZW50cmFuY3lQcm90ZWN0b3Io
bV9pblBydW5lUmVzb3VyY2VzLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiByZWVudHJh
bmN5UHJvdGVjdG9yKG1faW5QcnVuZVJlc291cmNlcywgdHJ1ZSk7CiAKICAgICBkb3VibGUgY3Vy
cmVudFRpbWUgPSBGcmFtZVZpZXc6OmN1cnJlbnRQYWludFRpbWVTdGFtcCgpOwogICAgIGlmICgh
Y3VycmVudFRpbWUpIC8vIEluIGNhc2UgcHJ1bmUgaXMgY2FsbGVkIGRpcmVjdGx5LCBvdXRzaWRl
IG9mIGEgRnJhbWUgcGFpbnQuCkBAIC0zNzEsNyArMzcxLDcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6
cHJ1bmVEZWFkUmVzb3VyY2VzVG9TaXplKHVuc2lnbmVkIHRhcmdldFNpemUpCiB7CiAgICAgaWYg
KG1faW5QcnVuZVJlc291cmNlcykKICAgICAgICAgcmV0dXJuOwotICAgIFRlbXBvcmFyeUNoYW5n
ZTxib29sPiByZWVudHJhbmN5UHJvdGVjdG9yKG1faW5QcnVuZVJlc291cmNlcywgdHJ1ZSk7Cisg
ICAgU2V0Rm9yU2NvcGU8Ym9vbD4gcmVlbnRyYW5jeVByb3RlY3RvcihtX2luUHJ1bmVSZXNvdXJj
ZXMsIHRydWUpOwogIAogICAgIGlmICh0YXJnZXRTaXplICYmIG1fZGVhZFNpemUgPD0gdGFyZ2V0
U2l6ZSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IGU4MjMzNTIx
YzVkYTY1NWQ4M2I3MTY0Y2VhYThjNTI5NzlmZjBiNzkuLmQ5ZWFjMDA5YjU2YjljMWY4N2M5OTRm
NDdhNDcwODYxMTc1ZjZiZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTUxLDcgKzUxLDcg
QEAKICNpbmNsdWRlIDxydW50aW1lL1ZNLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5o
PgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpAQCAtMjIyLDcgKzIyMiw3IEBAIHZvaWQg
Q2hyb21lOjpydW5Nb2RhbCgpIGNvbnN0CiAKICAgICAvLyBKYXZhU2NyaXB0IHRoYXQgcnVucyB3
aXRoaW4gdGhlIG5lc3RlZCBldmVudCBsb29wIG11c3Qgbm90IGJlIHJ1biBpbiB0aGUgY29udGV4
dCBvZiB0aGUKICAgICAvLyBzY3JpcHQgdGhhdCBjYWxsZWQgc2hvd01vZGFsRGlhbG9nLiBOdWxs
IG91dCBlbnRyeVNjb3BlIHRvIGJyZWFrIHRoZSBjb25uZWN0aW9uLgotICAgIFRlbXBvcmFyeUNo
YW5nZTxKU0M6OlZNRW50cnlTY29wZSo+IGVudHJ5U2NvcGVOdWxsaWZpZXIgeyBtX3BhZ2UubWFp
bkZyYW1lKCkuZG9jdW1lbnQoKS0+dm0oKS5lbnRyeVNjb3BlLCBudWxscHRyIH07CisgICAgU2V0
Rm9yU2NvcGU8SlNDOjpWTUVudHJ5U2NvcGUqPiBlbnRyeVNjb3BlTnVsbGlmaWVyIHsgbV9wYWdl
Lm1haW5GcmFtZSgpLmRvY3VtZW50KCktPnZtKCkuZW50cnlTY29wZSwgbnVsbHB0ciB9OwogCiAg
ICAgVGltZXJCYXNlOjpmaXJlVGltZXJzSW5OZXN0ZWRFdmVudExvb3AoKTsKICAgICBtX2NsaWVu
dC5ydW5Nb2RhbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDJlZjU4MzhhYjM0
NGE4YmI5MmE0Y2VjY2JkMWMyNTZiNjMyODZjYzkuLmZmZTYyMGI5N2UzZjQ3N2EyNjRmZTM4MDBi
MTZjMTY3NGZiNmM1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTk5LDggKzk5
LDggQEAKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJh
Y2luZy5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KIAogI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDUykKICNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9yZS5oIgpAQCAtMTI4
OCwxMCArMTI4OCwxMCBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0cmVl
KQogCiAgICAgLy8gTWFueSBvZiB0aGUgdGFza3MgcGVyZm9ybWVkIGR1cmluZyBsYXlvdXQgY2Fu
IGNhdXNlIHRoaXMgZnVuY3Rpb24gdG8gYmUgcmUtZW50ZXJlZCwKICAgICAvLyBzbyBzYXZlIHRo
ZSBsYXlvdXQgcGhhc2Ugbm93IGFuZCByZXN0b3JlIGl0IG9uIGV4aXQuCi0gICAgVGVtcG9yYXJ5
Q2hhbmdlPExheW91dFBoYXNlPiBsYXlvdXRQaGFzZVJlc3RvcmVyKG1fbGF5b3V0UGhhc2UsIElu
UHJlTGF5b3V0KTsKKyAgICBTZXRGb3JTY29wZTxMYXlvdXRQaGFzZT4gbGF5b3V0UGhhc2VSZXN0
b3JlcihtX2xheW91dFBoYXNlLCBJblByZUxheW91dCk7CiAKICAgICAvLyBFdmVyeSBzY3JvbGwg
dGhhdCBoYXBwZW5zIGR1cmluZyBsYXlvdXQgaXMgcHJvZ3JhbW1hdGljLgotICAgIFRlbXBvcmFy
eUNoYW5nZTxib29sPiBjaGFuZ2VJblByb2dyYW1tYXRpY1Njcm9sbChtX2luUHJvZ3JhbW1hdGlj
U2Nyb2xsLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2VJblByb2dyYW1tYXRp
Y1Njcm9sbChtX2luUHJvZ3JhbW1hdGljU2Nyb2xsLCB0cnVlKTsKIAogICAgIGJvb2wgaW5DaGls
ZEZyYW1lTGF5b3V0V2l0aEZyYW1lRmxhdHRlbmluZyA9IGlzSW5DaGlsZEZyYW1lV2l0aEZyYW1l
RmxhdHRlbmluZygpOwogCkBAIC0xMzMxLDEyICsxMzMxLDEyIEBAIHZvaWQgRnJhbWVWaWV3Ojps
YXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgQVNTRVJUKGRvY3VtZW50LnBhZ2VDYWNoZVN0
YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKIAogICAgIHsKLSAgICAgICAgVGVt
cG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZVNjaGVkdWxpbmdFbmFibGVkKG1fbGF5b3V0U2NoZWR1
bGluZ0VuYWJsZWQsIGZhbHNlKTsKKyAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlU2No
ZWR1bGluZ0VuYWJsZWQobV9sYXlvdXRTY2hlZHVsaW5nRW5hYmxlZCwgZmFsc2UpOwogCiAgICAg
ICAgIGlmICghbV9uZXN0ZWRMYXlvdXRDb3VudCAmJiAhbV9pblN5bmNocm9ub3VzUG9zdExheW91
dCAmJiBtX3Bvc3RMYXlvdXRUYXNrc1RpbWVyLmlzQWN0aXZlKCkgJiYgIWluQ2hpbGRGcmFtZUxh
eW91dFdpdGhGcmFtZUZsYXR0ZW5pbmcpIHsKICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBuZXcg
dG9wLWxldmVsIGxheW91dC4gSWYgdGhlcmUgYXJlIGFueSByZW1haW5pbmcgdGFza3MgZnJvbSB0
aGUgcHJldmlvdXMKICAgICAgICAgICAgIC8vIGxheW91dCwgZmluaXNoIHRoZW0gbm93LgotICAg
ICAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGluU3luY2hyb25vdXNQb3N0TGF5b3V0Q2hh
bmdlKG1faW5TeW5jaHJvbm91c1Bvc3RMYXlvdXQsIHRydWUpOworICAgICAgICAgICAgU2V0Rm9y
U2NvcGU8Ym9vbD4gaW5TeW5jaHJvbm91c1Bvc3RMYXlvdXRDaGFuZ2UobV9pblN5bmNocm9ub3Vz
UG9zdExheW91dCwgdHJ1ZSk7CiAgICAgICAgICAgICBwZXJmb3JtUG9zdExheW91dFRhc2tzKCk7
CiAgICAgICAgIH0KIApAQCAtMTM3OCw3ICsxMzc4LDcgQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91
dChib29sIGFsbG93U3VidHJlZSkKICAgICArK21fbmVzdGVkTGF5b3V0Q291bnQ7CiAKICAgICB7
Ci0gICAgICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2VTY2hlZHVsaW5nRW5hYmxlZCht
X2xheW91dFNjaGVkdWxpbmdFbmFibGVkLCBmYWxzZSk7CisgICAgICAgIFNldEZvclNjb3BlPGJv
b2w+IGNoYW5nZVNjaGVkdWxpbmdFbmFibGVkKG1fbGF5b3V0U2NoZWR1bGluZ0VuYWJsZWQsIGZh
bHNlKTsKIAogICAgICAgICBhdXRvU2l6ZUlmRW5hYmxlZCgpOwogCkBAIC0xNTUwLDcgKzE1NTAs
NyBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0cmVlKQogICAgICAgICAg
ICAgaWYgKGluQ2hpbGRGcmFtZUxheW91dFdpdGhGcmFtZUZsYXR0ZW5pbmcpCiAgICAgICAgICAg
ICAgICAgdXBkYXRlV2lkZ2V0UG9zaXRpb25zKCk7CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gaW5TeW5jaHJvbm91c1Bvc3RMYXlvdXRD
aGFuZ2UobV9pblN5bmNocm9ub3VzUG9zdExheW91dCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAg
U2V0Rm9yU2NvcGU8Ym9vbD4gaW5TeW5jaHJvbm91c1Bvc3RMYXlvdXRDaGFuZ2UobV9pblN5bmNo
cm9ub3VzUG9zdExheW91dCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgcGVyZm9ybVBvc3RMYXlv
dXRUYXNrcygpOyAvLyBDYWxscyByZXN1bWVTY2hlZHVsZWRFdmVudHMoKS4KICAgICAgICAgICAg
IH0KICAgICAgICAgfQpAQCAtMjM1OSw3ICsyMzU5LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9s
bEVsZW1lbnRUb1JlY3QoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UmVjdCYgcmVj
dCkKIAogdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0
aW9uJiBzY3JvbGxQb3NpdGlvbikKIHsKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY2hhbmdl
SW5Qcm9ncmFtbWF0aWNTY3JvbGwobV9pblByb2dyYW1tYXRpY1Njcm9sbCwgdHJ1ZSk7CisgICAg
U2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlSW5Qcm9ncmFtbWF0aWNTY3JvbGwobV9pblByb2dyYW1t
YXRpY1Njcm9sbCwgdHJ1ZSk7CiAgICAgbV9tYWludGFpblNjcm9sbFBvc2l0aW9uQW5jaG9yID0g
bnVsbHB0cjsKICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CiAgICAgaWYgKHBhZ2Ug
JiYgcGFnZS0+ZXhwZWN0c1doZWVsRXZlbnRUcmlnZ2VycygpKQpAQCAtMjQ2NSw3ICsyNDY1LDcg
QEAgdm9pZCBGcmFtZVZpZXc6OmFwcGx5UmVjdXJzaXZlbHlXaXRoVmlzaWJsZVJlY3QoY29uc3Qg
c3RkOjpmdW5jdGlvbjx2b2lkIChGcmFtZVYKICAgICBhcHBseSgqdGhpcywgdmlzaWJsZVJlY3Qp
OwogCiAgICAgLy8gUmVjdXJzaXZlIGNhbGwgZm9yIHN1YmZyYW1lcy4gV2UgY2FjaGUgdGhlIGN1
cnJlbnQgRnJhbWVWaWV3J3Mgd2luZG93Q2xpcFJlY3QgdG8gYXZvaWQgcmVjb21wdXRpbmcgaXQg
Zm9yIGV2ZXJ5IHN1YmZyYW1lLgotICAgIFRlbXBvcmFyeUNoYW5nZTxJbnRSZWN0Kj4gd2luZG93
Q2xpcFJlY3RDYWNoZShtX2NhY2hlZFdpbmRvd0NsaXBSZWN0LCAmd2luZG93Q2xpcFJlY3QpOwor
ICAgIFNldEZvclNjb3BlPEludFJlY3QqPiB3aW5kb3dDbGlwUmVjdENhY2hlKG1fY2FjaGVkV2lu
ZG93Q2xpcFJlY3QsICZ3aW5kb3dDbGlwUmVjdCk7CiAgICAgZm9yIChGcmFtZSogY2hpbGRGcmFt
ZSA9IGZyYW1lKCkudHJlZSgpLmZpcnN0Q2hpbGQoKTsgY2hpbGRGcmFtZTsgY2hpbGRGcmFtZSA9
IGNoaWxkRnJhbWUtPnRyZWUoKS5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChhdXRvKiBj
aGlsZFZpZXcgPSBjaGlsZEZyYW1lLT52aWV3KCkpCiAgICAgICAgICAgICBjaGlsZFZpZXctPmFw
cGx5UmVjdXJzaXZlbHlXaXRoVmlzaWJsZVJlY3QoYXBwbHkpOwpAQCAtMzUzOSw3ICszNTM5LDcg
QEAgdm9pZCBGcmFtZVZpZXc6OmF1dG9TaXplSWZFbmFibGVkKCkKIAogICAgIExPRyhMYXlvdXQs
ICJGcmFtZVZpZXcgJXAgYXV0b1NpemVJZkVuYWJsZWQiLCB0aGlzKTsKIAotICAgIFRlbXBvcmFy
eUNoYW5nZTxib29sPiBjaGFuZ2VJbkF1dG9TaXplKG1faW5BdXRvU2l6ZSwgdHJ1ZSk7CisgICAg
U2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlSW5BdXRvU2l6ZShtX2luQXV0b1NpemUsIHRydWUpOwog
CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpOwogICAgIGlmICgh
ZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcAppbmRleCA0ZGQ2N2UxZjBjNzEyMmY5M2Y3ZjdiZDExYmRiZWExYjU0ZGQ2MzBh
Li41YzhiZjEzYTQwMTFmMGZiNmYxMjNkMDY0MTgwODVhZWE1OTM2YzZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTU3LDcg
KzU3LDcgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5jbHVk
ZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3Jp
cHRDYWxsU3RhY2tGYWN0b3J5Lmg+Ci0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgor
I2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KIApAQCAtMTQ3LDcg
KzE0Nyw3IEBAIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OnJlc3BvbnNlSGVhZGVycygpIGNvCiAKIHZvaWQgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpkaWRSZWNlaXZlSGVhZGVycyhjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMmIGhlYWRlcnMsIFJlcG9ydFBhcnNpbmdFcnJvcnMgcmVwb3J0UGFyc2luZ0Vy
cm9ycykKIHsKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gaXNSZXBvcnRpbmdFbmFibGVkKG1f
aXNSZXBvcnRpbmdFbmFibGVkLCByZXBvcnRQYXJzaW5nRXJyb3JzID09IFJlcG9ydFBhcnNpbmdF
cnJvcnM6Olllcyk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNSZXBvcnRpbmdFbmFibGVkKG1f
aXNSZXBvcnRpbmdFbmFibGVkLCByZXBvcnRQYXJzaW5nRXJyb3JzID09IFJlcG9ydFBhcnNpbmdF
cnJvcnM6Olllcyk7CiAgICAgZm9yIChhdXRvJiBoZWFkZXIgOiBoZWFkZXJzLm1faGVhZGVycykK
ICAgICAgICAgZGlkUmVjZWl2ZUhlYWRlcihoZWFkZXIuZmlyc3QsIGhlYWRlci5zZWNvbmQsIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6UG9saWN5RnJvbTo6SFRUUEhlYWRlcik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4IDY0M2Ji
ZGI5YmZiZWYwODYwYWY1MzE4ZTU0ZWU2ODhiZWFjYzFhMDUuLjcxMzdjNTlhMzM5YWMzMDJjZjBk
Mjc1ZmNlN2E0M2FiY2IwMDY5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSAiU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmgiCiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgotI2luY2x1ZGUgPHd0Zi9U
ZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpj
b21taXRUcmVlU3RhdGUoc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4gc2Nyb2xs
aW4KICAgICB9CiAgICAgCiAgICAgYm9vbCBzY3JvbGxSZXF1ZXN0SXNQcm9nYW1tYXRpYyA9IHJv
b3ROb2RlID8gcm9vdE5vZGUtPnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uUmVwcmVzZW50c1Byb2dy
YW1tYXRpY1Njcm9sbCgpIDogZmFsc2U7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5n
ZUhhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKG1faXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9s
bCwgc2Nyb2xsUmVxdWVzdElzUHJvZ2FtbWF0aWMpOworICAgIFNldEZvclNjb3BlPGJvb2w+IGNo
YW5nZUhhbmRsaW5nUHJvZ3JhbW1hdGljU2Nyb2xsKG1faXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Nj
cm9sbCwgc2Nyb2xsUmVxdWVzdElzUHJvZ2FtbWF0aWMpOwogCiAgICAgcmVtb3ZlRGVzdHJveWVk
Tm9kZXMoKnNjcm9sbGluZ1N0YXRlVHJlZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IGE4YTE0ZWY4
MGU3Y2RiMTdkNTJlNGU0YWY0YTQzNzM3NjIyYTRhMTcuLjY1OTgwMjBhN2MzNTE5OTM0NjkzOTgz
ZTcwOGExMjIxZTY2NjRiZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtNTAsOCArNTAsOCBAQAogI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3Bl
Lmg+CiAjaW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9y
YXJ5Q2hhbmdlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQTEFU
Rk9STShJT1MpCkBAIC0xNTM0LDcgKzE1MzQsNyBAQCBzdGF0aWMgYm9vbCBpc0N1c3RvbUJhY2tk
cm9wTGF5ZXJUeXBlKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIGxheWVyVHlwZSkKIAogdm9p
ZCBHcmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhDb21t
aXRTdGF0ZSYgY29tbWl0U3RhdGUsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgY29uc3QgRmxvYXRQ
b2ludCYgcG9zaXRpb25SZWxhdGl2ZVRvQmFzZSkKIHsKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9v
bD4gY29tbWl0dGluZ0NoYW5nZXNDaGFuZ2UobV9pc0NvbW1pdHRpbmdDaGFuZ2VzLCB0cnVlKTsK
KyAgICBTZXRGb3JTY29wZTxib29sPiBjb21taXR0aW5nQ2hhbmdlc0NoYW5nZShtX2lzQ29tbWl0
dGluZ0NoYW5nZXMsIHRydWUpOwogCiAgICAgKytjb21taXRTdGF0ZS50cmVlRGVwdGg7CiAgICAg
aWYgKG1fc3RydWN0dXJhbExheWVyKQpAQCAtMTY4OCw3ICsxNjg4LDcgQEAgdm9pZCBHcmFwaGlj
c0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0FmdGVyU3VibGF5ZXJzKENvbW1pdFN0YXRlJiBj
b21taXRTdGF0ZSkKICAgICBpZiAoIW1fdW5jb21taXR0ZWRDaGFuZ2VzKQogICAgICAgICByZXR1
cm47CiAKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY29tbWl0dGluZ0NoYW5nZXNDaGFuZ2Uo
bV9pc0NvbW1pdHRpbmdDaGFuZ2VzLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjb21t
aXR0aW5nQ2hhbmdlc0NoYW5nZShtX2lzQ29tbWl0dGluZ0NoYW5nZXMsIHRydWUpOwogCiAgICAg
aWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgTWFza0xheWVyQ2hhbmdlZCkKICAgICAgICAgdXBk
YXRlTWFza0xheWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvVGVtcG9yYXJ5T3BlbkdMU2V0dGluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RlbXBvcmFyeU9wZW5HTFNldHRpbmcuaAppbmRleCA4MzNm
OGI2YmU2NWQzNzk1NjBiMDJkZDZjOTA3NjkwODVhODUyODM4Li5jYjUxNjk1YjcxZGI3NTI3NmFi
MTQzODYzY2VhYjdjN2I3YzE2N2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9yYXJ5T3BlbkdMU2V0dGluZy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZW1wb3JhcnlPcGVuR0xTZXR0aW5nLmgK
QEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gdmFsdWUgdXBvbiBkZXN0
cnVjdGlvbiwgbWFraW5nIGl0IGFuIGFsdGVybmF0aXZlIHRvIGNoZWNraW5nLCBjbGVhcmluZywg
YW5kIHJlc2V0dGluZyBlYWNoIGZsYWcKIC8vIGF0IGFsbCBvZiBhIGJsb2NrJ3MgZXhpdCBwb2lu
dHMuCiAvLwotLy8gQmFzZWQgb24gV1RGOjpUZW1wb3JhcnlDaGFuZ2U8PgorLy8gQmFzZWQgb24g
V1RGOjpTZXRGb3JTY29wZTw+CiAKIGNsYXNzIFRlbXBvcmFyeU9wZW5HTFNldHRpbmcgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFRlbXBvcmFyeU9wZW5HTFNldHRpbmcpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckdMLmNwcAppbmRleCBmMTEyMWE1YjE5NmNjYzdjY2YzNWE4MGE3NDg5OWUyM2FhMTAyM2Uz
Li4yMTdiYTVkY2FiNDQxNzA3MGEwNGI3MzA0MGRiZWE1MzFhY2RkNWYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckdMLmNwcApAQCAtMzgsNyArMzgsNyBAQAogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1Nl
dEZvclNjb3BlLmg+CiAKICNpZiBVU0UoQ0FJUk8pCiAjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMu
aCIKQEAgLTQxMiw3ICs0MTIsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUo
Y29uc3QgQml0bWFwVGV4dHVyZSYgdGV4dHVyZSwgY29uc3QgRmxvYXRSZWN0JgogICAgICAgICBy
ZXR1cm47CiAKICAgICBjb25zdCBCaXRtYXBUZXh0dXJlR0wmIHRleHR1cmVHTCA9IHN0YXRpY19j
YXN0PGNvbnN0IEJpdG1hcFRleHR1cmVHTCY+KHRleHR1cmUpOwotICAgIFRlbXBvcmFyeUNoYW5n
ZTxjb25zdCBCaXRtYXBUZXh0dXJlR0w6OkZpbHRlckluZm8qPiBmaWx0ZXJJbmZvKGRhdGEoKS5m
aWx0ZXJJbmZvLCB0ZXh0dXJlR0wuZmlsdGVySW5mbygpKTsKKyAgICBTZXRGb3JTY29wZTxjb25z
dCBCaXRtYXBUZXh0dXJlR0w6OkZpbHRlckluZm8qPiBmaWx0ZXJJbmZvKGRhdGEoKS5maWx0ZXJJ
bmZvLCB0ZXh0dXJlR0wuZmlsdGVySW5mbygpKTsKIAogICAgIGRyYXdUZXh0dXJlKHRleHR1cmVH
TC5pZCgpLCB0ZXh0dXJlR0wuaXNPcGFxdWUoKSA/IDAgOiBTaG91bGRCbGVuZCwgdGV4dHVyZUdM
LnNpemUoKSwgdGFyZ2V0UmVjdCwgbWF0cml4LCBvcGFjaXR5LCBleHBvc2VkRWRnZXMpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
LmNwcAppbmRleCA3NDhhZDhlOWUzODBhM2VlNzJhNmEwMjE1ODI0ZWY4ZDQxN2VjMzEwLi42MGU2
MzMyNzQwOWUyMDI5ZjEzODA5NDhmMmYxZmZhN2E5MWYxNDFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtMzIsNyAr
MzIsNyBAQAogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CiAjaWZuZGVmIE5ERUJVRwotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2Uu
aD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNlbmRpZgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KIApAQCAtMTA0MSw3ICsxMDQxLDcgQEAgdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OnVwZGF0ZUNvbnRlbnRCdWZmZXJzKCkKIHZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjpwdXJnZUJhY2tpbmdTdG9yZXMoKQogewogI2lmbmRlZiBOREVCVUcKLSAgICBU
ZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gdXBkYXRlTW9kZVByb3RlY3RvcihtX2lzUHVyZ2luZywgdHJ1
ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gdXBkYXRlTW9kZVByb3RlY3RvcihtX2lzUHVyZ2lu
ZywgdHJ1ZSk7CiAjZW5kaWYKICAgICBtX21haW5CYWNraW5nU3RvcmUgPSBudWxscHRyOwogICAg
IG1fcHJldmlvdXNCYWNraW5nU3RvcmUgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzTGF5ZXJEaXJlY3QyRC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NMYXllckRpcmVjdDJE
LmNwcAppbmRleCBmOTJjMTI3OGQwOGY0NWNhZTVlZDg1NDNmOWM4YjViNDlhNmRiMDM4Li41NTYy
MjM5NTU1OWE2N2RiZjMxZmI4YjFiYTM1Njg4MjQ0NjE2YjY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NMYXllckRpcmVjdDJELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NMYXllckRp
cmVjdDJELmNwcApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N5c3Rl
bVRyYWNpbmcuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCmluZGV4IGE1NDU5ZDljZGE1OWY1NTIzYmQ1ZWIxOWIx
MTg1ZTQwYTk3NjAzNTMuLmYwYjNhNWE3MzVjOGVkZTEwODRmNzhjMDAxOThhNTk3MDY3ZGVkYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5j
cHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5jbHVk
ZSAiU2VsZWN0aW9uRGF0YS5oIgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3dGYv
VGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVk
ZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IApAQCAtMjg5LDcgKzI4OSw3IEBAIHZvaWQgUGFzdGVib2FyZEhlbHBlcjo6d3JpdGVDbGlwYm9h
cmRDb250ZW50cyhHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgY29uc3QgU2VsCiAgICAgR3RrVGFy
Z2V0RW50cnkqIHRhYmxlID0gZ3RrX3RhcmdldF90YWJsZV9uZXdfZnJvbV9saXN0KGxpc3QuZ2V0
KCksICZudW1iZXJPZlRhcmdldHMpOwogCiAgICAgaWYgKG51bWJlck9mVGFyZ2V0cyA+IDAgJiYg
dGFibGUpIHsKLSAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPFNlbGVjdGlvbkRhdGEqPiBjaGFuZ2Uo
c2V0dGluZ0NsaXBib2FyZFNlbGVjdGlvbiwgY29uc3RfY2FzdDxTZWxlY3Rpb25EYXRhKj4oJnNl
bGVjdGlvbikpOworICAgICAgICBTZXRGb3JTY29wZTxTZWxlY3Rpb25EYXRhKj4gY2hhbmdlKHNl
dHRpbmdDbGlwYm9hcmRTZWxlY3Rpb24sIGNvbnN0X2Nhc3Q8U2VsZWN0aW9uRGF0YSo+KCZzZWxl
Y3Rpb24pKTsKICAgICAgICAgYXV0byBkYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxDbGlwYm9hcmRT
ZXREYXRhPigqc2V0dGluZ0NsaXBib2FyZFNlbGVjdGlvbiwgV1RGTW92ZShwcmltYXJ5U2VsZWN0
aW9uQ2xlYXJlZCkpOwogICAgICAgICBpZiAoZ3RrX2NsaXBib2FyZF9zZXRfd2l0aF9kYXRhKGNs
aXBib2FyZCwgdGFibGUsIG51bWJlck9mVGFyZ2V0cywgZ2V0Q2xpcGJvYXJkQ29udGVudHNDYWxs
YmFjaywgY2xlYXJDbGlwYm9hcmRDb250ZW50c0NhbGxiYWNrLCBkYXRhLmdldCgpKSkgewogICAg
ICAgICAgICAgZ3RrX2NsaXBib2FyZF9zZXRfY2FuX3N0b3JlKGNsaXBib2FyZCwgbnVsbHB0ciwg
MCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMu
bW0KaW5kZXggMTUwZmFiZThlMzc3NGYwNjI1Zjg1OTY2NGNhZjc4NzRjYzdjNjVhOS4uYjJlMTYx
OGMwMzJmYjdjNjVmMWZlMTkxN2YyMDRlMjk2NzRjMzg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtNDAsOCArNDAsOCBAQAog
I2luY2x1ZGUgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvU2V0
Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3Rm
L1RlbXBvcmFyeUNoYW5nZS5oPgogCiAvLyBGSVhNRTogVGhlcmUgYXJlIHJlcGFpbnRpbmcgcHJv
YmxlbXMgZHVlIHRvIEFxdWEgc2Nyb2xsIGJhciBidXR0b25zJyB2aXN1YWwgb3ZlcmZsb3cuCiAK
QEAgLTU0OSw3ICs1NDksNyBAQCBib29sIFNjcm9sbGJhclRoZW1lTWFjOjpwYWludChTY3JvbGxi
YXImIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjbwogICAgIGlmIChzY3Jv
bGxiYXIuc3VwcG9ydHNVcGRhdGVPblNlY29uZGFyeVRocmVhZCgpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBpc0N1cnJlbnRseURyYXdpbmdJbnRv
TGF5ZXIoZ19pc0N1cnJlbnRseURyYXdpbmdJbnRvTGF5ZXIsIGNvbnRleHQuaXNDQUxheWVyQ29u
dGV4dCgpKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBpc0N1cnJlbnRseURyYXdpbmdJbnRvTGF5
ZXIoZ19pc0N1cnJlbnRseURyYXdpbmdJbnRvTGF5ZXIsIGNvbnRleHQuaXNDQUxheWVyQ29udGV4
dCgpKTsKICAgICAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29u
dGV4dCk7CiAgICAgY29udGV4dC5jbGlwKGRhbWFnZVJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZmU2ODFkOGIyMWRmZDBhMDhhYzdkZGFjM2IzYmVi
YmU4YjM2ZTRjYy4uODUxYTA0NzRlODRjNzE1MTliY2RiMjNjMTNjZTk5YmNhYTE5NDBiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC03Myw4ICs3Myw4IEBA
CiAKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tT
dGF0cy5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdURjsKIHVzaW5nIG5hbWVzcGFjZSBVbmljb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAKaW5kZXggYjk1OTMzZmUwMTkyZWUyNmQzNjE3
YjZiM2FlZjRlYWFkNmFlMWM2Ny4uZmM3YjgxOGIyNGZiOTExNTIxNDBhYWYzYzEwNDk3NDQwYWE4
NDBiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5
TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAu
Y3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRl
ICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKLSNpbmNsdWRlIDx3
dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTQxLDcgKzE0MSw3IEBAIEZsb2F0UXVhZCBSZW5kZXJH
ZW9tZXRyeU1hcDo6bWFwVG9Db250YWluZXIoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBS
ZW5kZXJMCiB2b2lkIFJlbmRlckdlb21ldHJ5TWFwOjpwdXNoTWFwcGluZ3NUb0FuY2VzdG9yKGNv
bnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IGFuY2VzdG9yUmVuZGVyZXIpCiB7CiAgICAgLy8gV2UgbmVlZCB0byBwdXNoIG1hcHBpbmdzIGlu
IHJldmVyc2Ugb3JkZXIgaGVyZSwgc28gZG8gaW5zZXJ0aW9ucyByYXRoZXIgdGhhbiBhcHBlbmRz
LgotICAgIFRlbXBvcmFyeUNoYW5nZTxzaXplX3Q+IHBvc2l0aW9uQ2hhbmdlKG1faW5zZXJ0aW9u
UG9zaXRpb24sIG1fbWFwcGluZy5zaXplKCkpOworICAgIFNldEZvclNjb3BlPHNpemVfdD4gcG9z
aXRpb25DaGFuZ2UobV9pbnNlcnRpb25Qb3NpdGlvbiwgbV9tYXBwaW5nLnNpemUoKSk7CiAgICAg
ZG8gewogICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5wdXNoTWFwcGluZ1RvQ29udGFpbmVy
KGFuY2VzdG9yUmVuZGVyZXIsICp0aGlzKTsKICAgICB9IHdoaWxlIChyZW5kZXJlciAmJiByZW5k
ZXJlciAhPSBhbmNlc3RvclJlbmRlcmVyKTsKQEAgLTE3NSw3ICsxNzUsNyBAQCBzdGF0aWMgYm9v
bCBjYW5NYXBCZXR3ZWVuUmVuZGVyZXJzVmlhTGF5ZXJzKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QmIHJlbmRlcgogdm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6cHVzaE1hcHBpbmdzVG9BbmNl
c3Rvcihjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiBhbmNlc3Rv
ckxheWVyLCBib29sIHJlc3BlY3RUcmFuc2Zvcm1zKQogewogICAgIE1hcENvb3JkaW5hdGVzRmxh
Z3MgbmV3RmxhZ3MgPSByZXNwZWN0VHJhbnNmb3JtcyA/IG1fbWFwQ29vcmRpbmF0ZXNGbGFncyA6
IG1fbWFwQ29vcmRpbmF0ZXNGbGFncyAmIH5Vc2VUcmFuc2Zvcm1zOwotICAgIFRlbXBvcmFyeUNo
YW5nZTxNYXBDb29yZGluYXRlc0ZsYWdzPiBmbGFnc0NoYW5nZShtX21hcENvb3JkaW5hdGVzRmxh
Z3MsIG5ld0ZsYWdzKTsKKyAgICBTZXRGb3JTY29wZTxNYXBDb29yZGluYXRlc0ZsYWdzPiBmbGFn
c0NoYW5nZShtX21hcENvb3JkaW5hdGVzRmxhZ3MsIG5ld0ZsYWdzKTsKIAogICAgIGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QmIHJlbmRlcmVyID0gbGF5ZXItPnJlbmRlcmVyKCk7CiAKQEAg
LTE5Miw3ICsxOTIsNyBAQCB2b2lkIFJlbmRlckdlb21ldHJ5TWFwOjpwdXNoTWFwcGluZ3NUb0Fu
Y2VzdG9yKGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgY29uc3QgUgogICAgICAgICAgICAgcHVz
aE1hcHBpbmdzVG9BbmNlc3RvcigmYW5jZXN0b3JMYXllci0+cmVuZGVyZXIoKSwgbnVsbHB0cik7
CiAgICAgICAgIH0KIAotICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8c2l6ZV90PiBwb3NpdGlvbkNo
YW5nZShtX2luc2VydGlvblBvc2l0aW9uLCBtX21hcHBpbmcuc2l6ZSgpKTsKKyAgICAgICAgU2V0
Rm9yU2NvcGU8c2l6ZV90PiBwb3NpdGlvbkNoYW5nZShtX2luc2VydGlvblBvc2l0aW9uLCBtX21h
cHBpbmcuc2l6ZSgpKTsKICAgICAgICAgcHVzaCgmcmVuZGVyZXIsIGxheWVyT2Zmc2V0LCAvKmFj
Y3VtdWxhdGluZ1RyYW5zZm9ybSovIHRydWUsIC8qaXNOb25Vbmlmb3JtKi8gZmFsc2UsIC8qaXNG
aXhlZFBvc2l0aW9uKi8gZmFsc2UsIC8qaGFzVHJhbnNmb3JtKi8gZmFsc2UpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5k
ZXggOTRlYzY3M2M0NzI3M2ZlNmQzYzQ3ZmVkMTFmYWY5ODkzZWQyNTZlYy4uNWJiY2MwMDM5MDVh
YWI5YTY4NzY1YWY3YzdjZTgyZGVjNjE3NGRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCkBAIC01NzcsNyArNTc3LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBk
YXRlTGF5ZXJQb3NpdGlvbnMoUmVuZGVyR2VvbWV0cnlNYXAqIGdlb21ldHJ5TWFwLCBVcGRhdGVM
YXkKICAgICAgICAgCiAgICAgLy8gV2l0aCBhbGwgb3VyIGNoaWxkcmVuIHBvc2l0aW9uZWQsIG5v
dyB1cGRhdGUgb3VyIG1hcnF1ZWUgaWYgd2UgbmVlZCB0by4KICAgICBpZiAobV9tYXJxdWVlKSB7
Ci0gICAgICAgIC8vIEZJWE1FOiB3b3VsZCBsaWtlIHRvIHVzZSBUZW1wb3JhcnlDaGFuZ2U8PiBi
dXQgaXQgZG9lc24ndCB3b3JrIHdpdGggYml0ZmllbGRzLgorICAgICAgICAvLyBGSVhNRTogd291
bGQgbGlrZSB0byB1c2UgU2V0Rm9yU2NvcGU8PiBidXQgaXQgZG9lc24ndCB3b3JrIHdpdGggYml0
ZmllbGRzLgogICAgICAgICBib29sIG9sZFVwZGF0aW5nTWFycXVlZVBvc2l0aW9uID0gbV91cGRh
dGluZ01hcnF1ZWVQb3NpdGlvbjsKICAgICAgICAgbV91cGRhdGluZ01hcnF1ZWVQb3NpdGlvbiA9
IHRydWU7CiAgICAgICAgIG1fbWFycXVlZS0+dXBkYXRlTWFycXVlZVBvc2l0aW9uKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmlu
ZGV4IDQwYTcwNDI5ZDA1N2E1ODE4MGVkYjA4ZjQ2ZmM3ZmZlNmE3MjEzZTkuLmZjNGExMTY0MGNi
ZTNmYTAzNDE4OWIwY2M5Mzc2Njk4NTc2Y2EwMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC02Myw3ICs2Myw3IEBACiAj
aW5jbHVkZSAiVGlsZWRCYWNraW5nLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKICNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdl
Lmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtNjgwLDcg
KzY4MCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xh
eWVycyhDb21wb3NpdGluZ1VwZGF0ZVR5cGUgdXBkYXRlCiAKICAgICBBbmltYXRpb25VcGRhdGVC
bG9jayBhbmltYXRpb25VcGRhdGVCbG9jaygmbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLmZyYW1l
KCkuYW5pbWF0aW9uKCkpOwogCi0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHBvc3RMYXlvdXRD
aGFuZ2UobV9pblBvc3RMYXlvdXRVcGRhdGUsIHRydWUpOworICAgIFNldEZvclNjb3BlPGJvb2w+
IHBvc3RMYXlvdXRDaGFuZ2UobV9pblBvc3RMYXlvdXRVcGRhdGUsIHRydWUpOwogICAgIAogICAg
IGJvb2wgY2hlY2tGb3JIaWVyYXJjaHlVcGRhdGUgPSBtX3JlZXZhbHVhdGVDb21wb3NpdGluZ0Fm
dGVyTGF5b3V0OwogICAgIGJvb2wgbmVlZEdlb21ldHJ5VXBkYXRlID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggZGQxMGZiMzVlODhiYTY3ZWU2ZjY1
MjcyOWU1OWQzODczYjQxNzdhYS4uODEzMGQyZTgyMDZiMGMwNDE2ZGRkOWFmMWJlNDFkNDI2NDE1
YjNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtNTEsOCAr
NTEsOCBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWRE
YXRhLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvU2V0Rm9y
U2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgotI2luY2x1ZGUgPHd0Zi9UZW1w
b3JhcnlDaGFuZ2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xODYsNyArMTg2LDcg
QEAgYm9vbCBSZW5kZXJWaWV3OjpoaXRUZXN0KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGwKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dCgp
OwogICAgIAogI2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4g
aGl0VGVzdFJlc3RvcmVyIHsgbV9pbkhpdFRlc3RpbmcsIHRydWUgfTsKKyAgICBTZXRGb3JTY29w
ZTxib29sPiBoaXRUZXN0UmVzdG9yZXIgeyBtX2luSGl0VGVzdGluZywgdHJ1ZSB9OwogI2VuZGlm
CiAKICAgICBGcmFtZUZsYXR0ZW5pbmdMYXlvdXREaXNhbGxvd2VyIGRpc2FsbG93ZXIoZnJhbWVW
aWV3KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L0V2ZW50TG9vcElucHV0
RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvRXZlbnRMb29wSW5wdXREaXNw
YXRjaGVyLmNwcAppbmRleCBjZDhiOTNjMzBlNjJiNDdhYTNhMzk4MDdhODhmNGQ4MWE5NjFjYzk5
Li41MTAyOTNmYzE2YzY0YWM5YjVmYjUxZTdiOThkMDkwZDhiNTEzNjY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZXBsYXkvRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZXBsYXkvRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyLmNwcApAQCAtMzMs
NyArMzMsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZXBsYXlpbmdJbnB1dEN1
cnNvci5oIgogI2luY2x1ZGUgIldlYlJlcGxheUlucHV0cy5oIgotI2luY2x1ZGUgPHd0Zi9UZW1w
b3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogI2lmICFMT0df
RElTQUJMRUQKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBF
dmVudExvb3BJbnB1dERpc3BhdGNoZXI6OmRpc3BhdGNoSW5wdXQoKQogICAgICAgICByZXR1cm47
CiAKICAgICB7Ci0gICAgICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2UobV9kaXNwYXRj
aGluZywgdHJ1ZSk7CisgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2Rpc3BhdGNo
aW5nLCB0cnVlKTsKICAgICAgICAgbV9jdXJyZW50V29yay5pbnB1dC0+ZGlzcGF0Y2gobV9wYWdl
LnJlcGxheUNvbnRyb2xsZXIoKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
TWFwLmNwcAppbmRleCBhZTQ4YjYwMjQxNDg4N2ZmYjI4OGQ2N2FlYjY2Zjk0ZWVlZDE5ZWU5Li4y
ZjQ3ZWNlYTE1NjBmYTAyM2VlZGY4MTU2ZThkZTc0MDAzZmViYzExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZU1hcC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJTdG9yYWdlTWFwLmgiCiAKLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hh
bmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMTQ0LDcgKzE0NCw3IEBAIFJlZlB0cjxTdG9yYWdlTWFwPiBTdG9yYWdlTWFwOjpz
ZXRJdGVtKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBTCiAKIFJlZlB0
cjxTdG9yYWdlTWFwPiBTdG9yYWdlTWFwOjpzZXRJdGVtSWdub3JpbmdRdW90YShjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBUZW1wb3JhcnlDaGFuZ2U8dW5z
aWduZWQ+IHF1b3RhU2l6ZUNoYW5nZShtX3F1b3RhU2l6ZSwgbm9RdW90YSk7CisgICAgU2V0Rm9y
U2NvcGU8dW5zaWduZWQ+IHF1b3RhU2l6ZUNoYW5nZShtX3F1b3RhU2l6ZSwgbm9RdW90YSk7CiAK
ICAgICBTdHJpbmcgb2xkVmFsdWU7CiAgICAgYm9vbCBxdW90YUV4Y2VwdGlvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQmxlbmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aEJsZW5kZXIuY3BwCmluZGV4IGM3ZjlkNjg3Yjk3MmJkNWY5MTMyZWQ2MjA0
YWNkNGIzNmQwYjgxZDQuLjhkMmY2MzZjZjRiMGY5MWFkNjIyMDQwYjM5YWQyZTE3MjkxYjRiNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQmxlbmRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVuZGVyLmNwcApAQCAtMjQsNyArMjQsNyBAQAog
I2luY2x1ZGUgIkFuaW1hdGlvblV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlNWR1BhdGhTZWcuaCIK
ICNpbmNsdWRlICJTVkdQYXRoU291cmNlLmgiCi0jaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5n
ZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTM0MSw3ICszNDEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTZWdtZW50RXF1YWwo
Y29uc3QgU1ZHUGF0aFNlZ1R5cGUmIGZyb21UeXBlLCBjb25zdCBTVkdQYXRoUwogCiBib29sIFNW
R1BhdGhCbGVuZGVyOjphZGRBbmltYXRlZFBhdGgodW5zaWduZWQgcmVwZWF0Q291bnQpCiB7Ci0g
ICAgVGVtcG9yYXJ5Q2hhbmdlPHVuc2lnbmVkPiBjaGFuZ2UobV9hZGRUeXBlc0NvdW50LCByZXBl
YXRDb3VudCk7CisgICAgU2V0Rm9yU2NvcGU8dW5zaWduZWQ+IGNoYW5nZShtX2FkZFR5cGVzQ291
bnQsIHJlcGVhdENvdW50KTsKICAgICByZXR1cm4gYmxlbmRBbmltYXRlZFBhdGgoMCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmNwcAppbmRleCAyN2Y4MzdiYmU0YjhhOWZkNmFlOTI2YjE4ODc5MjI5MTA4
NTQ0MDY1Li4xMWJjZTNiZWUwZTBiYTFkNzAyZjcyYzY2NDUzY2MyYTJiZGViN2Y2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJyZXNv
dXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8
d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYg
UExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGRiYzcy
OTMzYTZkMjhiMWMzNDU2YTNiZGIyOTkyNDUwNGUxYjI5MWUuLjFlNjYwNDI2NDcxN2NhYWU1ZGE4
OTBjMmU3NzMyZWJkZWE3YjI1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
QEAgLTIxOSw4ICsyMTksOCBAQAogI2ltcG9ydCA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5o
PgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBv
cnQgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgotI2lt
cG9ydCA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vZHls
ZFNQSS5oPgogCiAjaWYgIVBMQVRGT1JNKElPUykKQEAgLTk0MTYsNyArOTQxNiw3IEBAIC0gKHZv
aWQpdXBkYXRlVGV4dFRvdWNoQmFyCiAgICAgaWYgKF9wcml2YXRlLT5faXNVcGRhdGluZ1RleHRU
b3VjaEJhcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgVGVtcG9yYXJ5Q2hhbmdlPEJPT0w+IGlz
VXBkYXRpbmdUZXh0VG91Y2hCYXIoX3ByaXZhdGUtPl9pc1VwZGF0aW5nVGV4dFRvdWNoQmFyLCBZ
RVMpOworICAgIFNldEZvclNjb3BlPEJPT0w+IGlzVXBkYXRpbmdUZXh0VG91Y2hCYXIoX3ByaXZh
dGUtPl9pc1VwZGF0aW5nVGV4dFRvdWNoQmFyLCBZRVMpOwogCiAgICAgaWYgKCFfcHJpdmF0ZS0+
X3RleHRUb3VjaEJhckl0ZW1Db250cm9sbGVyKQogICAgICAgICBfcHJpdmF0ZS0+X3RleHRUb3Vj
aEJhckl0ZW1Db250cm9sbGVyID0gYWRvcHROUyhbW1dlYlRleHRUb3VjaEJhckl0ZW1Db250cm9s
bGVyIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6c2VsZl0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IGM3Zjdk
ZTNlY2EwZTJhNjZjYTc0YjVlNDZhZmZiZjFkOGFhNGYzYjYuLmRhOWRiMjI0ZWRjMGVhMGNiZDAw
MmRjMTcxMmEwYzE4NmQxOTM1ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0hUVFBIZWFkZXJNYXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lkZW50
aWZpZXJSZXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0jaW5jbHVk
ZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBA
IC0xMDcsNyArMTA3LDcgQEAgYm9vbCBQbHVnaW5Db250cm9sbGVyUHJveHk6OmluaXRpYWxpemUo
Y29uc3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiBjcmVhdGlvblAKICAgICBBU1NFUlQoIW1f
cGx1Z2luKTsKIAogICAgIEFTU0VSVCghbV9pc0luaXRpYWxpemluZyk7Ci0gICAgbV9pc0luaXRp
YWxpemluZyA9IHRydWU7IC8vIENhbm5vdCB1c2UgVGVtcG9yYXJ5Q2hhbmdlIGhlcmUsIGJlY2F1
c2UgdGhpcyBvYmplY3QgY2FuIGJlIGRlbGV0ZWQgYmVmb3JlIHRoZSBmdW5jdGlvbiByZXR1cm5z
LgorICAgIG1faXNJbml0aWFsaXppbmcgPSB0cnVlOyAvLyBDYW5ub3QgdXNlIFNldEZvclNjb3Bl
IGhlcmUsIGJlY2F1c2UgdGhpcyBvYmplY3QgY2FuIGJlIGRlbGV0ZWQgYmVmb3JlIHRoZSBmdW5j
dGlvbiByZXR1cm5zLgogCiAgICAgbV9wbHVnaW4gPSBOZXRzY2FwZVBsdWdpbjo6Y3JlYXRlKFBs
dWdpblByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHNjYXBlUGx1Z2luTW9kdWxlKCkpOwogICAgIGlm
ICghbV9wbHVnaW4pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggZGMzNjg3YWUzOWNkYzM4OTQwY2VjYWYwMWQ1
YTc0N2ZjMjZjMGE5NC4uNTRhOGVlNjVlYzViZGFiOWNjMDM3NzU3YjZhMjZhOTE1MjBlMTNkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKQEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm94eU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1
ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRl
IDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEy
MCw3ICsxMjAsNyBAQCB2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpzZXRHbG9iYWxFeGNlcHRp
b24oY29uc3QgU3RyaW5nJiBleGNlcHRpb25TdHJpbmcpCiAKIHZvaWQgV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBD
OjpEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIFRlbXBvcmFyeUNoYW5nZTxJUEM6OkNvbm5lY3Rp
b24qPiBjdXJyZW50Q29ubmVjdGlvbkNoYW5nZShjdXJyZW50Q29ubmVjdGlvbiwgJmNvbm5lY3Rp
b24pOworICAgIFNldEZvclNjb3BlPElQQzo6Q29ubmVjdGlvbio+IGN1cnJlbnRDb25uZWN0aW9u
Q2hhbmdlKGN1cnJlbnRDb25uZWN0aW9uLCAmY29ubmVjdGlvbik7CiAKICAgICBpZiAoZGVjb2Rl
ci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9u
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKQEAgLTE0Miw3ICsxNDIsNyBA
QCB2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RAogCiB2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpk
aWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRl
Y29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29k
ZXIpCiB7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPElQQzo6Q29ubmVjdGlvbio+IGN1cnJlbnRDb25u
ZWN0aW9uQ2hhbmdlKGN1cnJlbnRDb25uZWN0aW9uLCAmY29ubmVjdGlvbik7CisgICAgU2V0Rm9y
U2NvcGU8SVBDOjpDb25uZWN0aW9uKj4gY3VycmVudENvbm5lY3Rpb25DaGFuZ2UoY3VycmVudENv
bm5lY3Rpb24sICZjb25uZWN0aW9uKTsKIAogICAgIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQgPSBk
ZWNvZGVyLmRlc3RpbmF0aW9uSUQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tCmluZGV4IGUwNjZlMmYzYWYwZTNm
OGMyOTU3OTU5ZmVlOWQ4M2QzYjgwMmE3OGEuLmUyYjMwYmE5NjM3NjA4ODY4NjFmYmVkZDBjNmJk
NjU5YjZkMmIzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2Ev
V0tSZW1vdGVPYmplY3RDb2Rlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0Nv
Y29hL1dLUmVtb3RlT2JqZWN0Q29kZXIubW0KQEAgLTM3LDcgKzM3LDcgQEAKICNpbXBvcnQgIl9X
S1JlbW90ZU9iamVjdEludGVyZmFjZUludGVybmFsLmgiCiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbXBvcnQgPHd0Zi9UZW1wb3JhcnlDaGFu
Z2UuaD4KKyNpbXBvcnQgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0
cmluZy5oPgogCiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgY2xhc3NOYW1lS2V5ID0gIiRjbGFz
cyI7CkBAIC0yNzcsNyArMjc3LDcgQEAgc3RhdGljIFJlZlB0cjxBUEk6OkRpY3Rpb25hcnk+IGNy
ZWF0ZUVuY29kZWRPYmplY3QoV0tSZW1vdGVPYmplY3RFbmNvZGVyICplbmNvZGUKICAgICAgICAg
cmV0dXJuIG5pbDsKIAogICAgIFJlZjxBUEk6OkRpY3Rpb25hcnk+IGRpY3Rpb25hcnkgPSBBUEk6
OkRpY3Rpb25hcnk6OmNyZWF0ZSgpOwotICAgIFRlbXBvcmFyeUNoYW5nZTxBUEk6OkRpY3Rpb25h
cnkqPiBkaWN0aW9uYXJ5Q2hhbmdlKGVuY29kZXItPl9jdXJyZW50RGljdGlvbmFyeSwgZGljdGlv
bmFyeS5wdHIoKSk7CisgICAgU2V0Rm9yU2NvcGU8QVBJOjpEaWN0aW9uYXJ5Kj4gZGljdGlvbmFy
eUNoYW5nZShlbmNvZGVyLT5fY3VycmVudERpY3Rpb25hcnksIGRpY3Rpb25hcnkucHRyKCkpOwog
CiAgICAgZW5jb2RlT2JqZWN0KGVuY29kZXIsIG9iamVjdCk7CiAKQEAgLTY2NywxMyArNjY3LDEz
IEBAIHN0YXRpYyBpZCBkZWNvZGVPYmplY3QoV0tSZW1vdGVPYmplY3REZWNvZGVyICpkZWNvZGVy
LCBjb25zdCBBUEk6OkRpY3Rpb25hcnkqIGRpCiAgICAgaWYgKCFkaWN0aW9uYXJ5KQogICAgICAg
ICByZXR1cm4gbmlsOwogCi0gICAgVGVtcG9yYXJ5Q2hhbmdlPGNvbnN0IEFQSTo6RGljdGlvbmFy
eSo+IGRpY3Rpb25hcnlDaGFuZ2UoZGVjb2Rlci0+X2N1cnJlbnREaWN0aW9uYXJ5LCBkaWN0aW9u
YXJ5KTsKKyAgICBTZXRGb3JTY29wZTxjb25zdCBBUEk6OkRpY3Rpb25hcnkqPiBkaWN0aW9uYXJ5
Q2hhbmdlKGRlY29kZXItPl9jdXJyZW50RGljdGlvbmFyeSwgZGljdGlvbmFyeSk7CiAKICAgICAv
LyBJZiBubyBhbGxvd2VkIGNsYXNzZXMgd2VyZSBsaXN0ZWQsIGp1c3QgdXNlIHRoZSBjdXJyZW50
bHkgYWxsb3dlZCBjbGFzc2VzLgogICAgIGlmIChhbGxvd2VkQ2xhc3Nlcy5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybiBkZWNvZGVPYmplY3QoZGVjb2Rlcik7CiAKLSAgICBUZW1wb3JhcnlDaGFu
Z2U8Y29uc3QgSGFzaFNldDxDbGFzcz4qPiBhbGxvd2VkQ2xhc3Nlc0NoYW5nZShkZWNvZGVyLT5f
YWxsb3dlZENsYXNzZXMsICZhbGxvd2VkQ2xhc3Nlcyk7CisgICAgU2V0Rm9yU2NvcGU8Y29uc3Qg
SGFzaFNldDxDbGFzcz4qPiBhbGxvd2VkQ2xhc3Nlc0NoYW5nZShkZWNvZGVyLT5fYWxsb3dlZENs
YXNzZXMsICZhbGxvd2VkQ2xhc3Nlcyk7CiAgICAgcmV0dXJuIGRlY29kZU9iamVjdChkZWNvZGVy
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCAyYzQ2MjYwMDYzMjA0OTg1ODA3ZjZiMGUxYjRkYWU0NzY4NmVhMWRmLi5jYjY0
OGM1OGJlMjA5NzJlNjg0ZGE0ZjBkZTFjNTYxM2I3YTU4ZGM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMTAwLDcgKzEwMCw3IEBA
CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9PcHRpb25hbC5o
PgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotI2ltcG9ydCA8d3RmL1RlbXBvcmFyeUNoYW5n
ZS5oPgorI2ltcG9ydCA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndp
bi9keWxkU1BJLmg+CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0yMTYzLDcgKzIxNjMsNyBAQCAt
ICh2b2lkKV9rZXlib2FyZENoYW5nZWRXaXRoSW5mbzooTlNEaWN0aW9uYXJ5ICopa2V5Ym9hcmRJ
bmZvIGFkanVzdFNjcm9sbFZpZXc6KAogCiAgICAgaWYgKGFkanVzdFNjcm9sbFZpZXcpIHsKICAg
ICAgICAgQ0dGbG9hdCBib3R0b21JbnNldEJlZm9yZUFkanVzdG1lbnQgPSBbX3Njcm9sbFZpZXcg
Y29udGVudEluc2V0XS5ib3R0b207Ci0gICAgICAgIFRlbXBvcmFyeUNoYW5nZTxCT09MPiBpbnNl
dEFkanVzdG1lbnRHdWFyZChfY3VycmVudGx5QWRqdXN0aW5nU2Nyb2xsVmlld0luc2V0c0Zvcktl
eWJvYXJkLCBZRVMpOworICAgICAgICBTZXRGb3JTY29wZTxCT09MPiBpbnNldEFkanVzdG1lbnRH
dWFyZChfY3VycmVudGx5QWRqdXN0aW5nU2Nyb2xsVmlld0luc2V0c0ZvcktleWJvYXJkLCBZRVMp
OwogICAgICAgICBbX3Njcm9sbFZpZXcgX2FkanVzdEZvckF1dG9tYXRpY0tleWJvYXJkSW5mbzpr
ZXlib2FyZEluZm8gYW5pbWF0ZWQ6WUVTIGxhc3RBZGp1c3RtZW50OiZfbGFzdEFkanVzdG1lbnRG
b3JTY3JvbGxlcl07CiAgICAgICAgIENHRmxvYXQgYm90dG9tSW5zZXRBZnRlckFkanVzdG1lbnQg
PSBbX3Njcm9sbFZpZXcgY29udGVudEluc2V0XS5ib3R0b207CiAgICAgICAgIGlmIChib3R0b21J
bnNldEJlZm9yZUFkanVzdG1lbnQgIT0gYm90dG9tSW5zZXRBZnRlckFkanVzdG1lbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggNDE1NTlj
MWU2OWUzMGMyNTZiMmVjZTQ3ZGU1NjU4OTVjYjIwZTBiNS4uODIwMmUzMmE4MWQ0ODMwZmZlOWRm
OWY1YjZjZTc1YjIzYmE3YWFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQpAQCAtOTcsNyArOTcsNyBAQAogI2ltcG9ydCA8V2ViS2l0U3lzdGVt
SW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxzeXMvc3RhdC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVz
dHJveWVkLmg+Ci0jaW1wb3J0IDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW1wb3J0IDx3dGYv
U2V0Rm9yU2NvcGUuaD4KIAogI2lmIEhBVkUoVE9VQ0hfQkFSKSAmJiBFTkFCTEUoV0VCX1BMQVlC
QUNLX0NPTlRST0xTX01BTkFHRVIpCiBTT0ZUX0xJTktfRlJBTUVXT1JLKEFWS2l0KQpAQCAtOTg2
LDcgKzk4Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVRleHRUb3VjaEJhcigpCiAgICAg
aWYgKG1faXNVcGRhdGluZ1RleHRUb3VjaEJhcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgVGVt
cG9yYXJ5Q2hhbmdlPGJvb2w+IGlzVXBkYXRpbmdUZXh0RnVuY3Rpb25CYXIobV9pc1VwZGF0aW5n
VGV4dFRvdWNoQmFyLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBpc1VwZGF0aW5nVGV4
dEZ1bmN0aW9uQmFyKG1faXNVcGRhdGluZ1RleHRUb3VjaEJhciwgdHJ1ZSk7CiAKICAgICBpZiAo
IW1fdGV4dFRvdWNoQmFySXRlbUNvbnRyb2xsZXIpCiAgICAgICAgIG1fdGV4dFRvdWNoQmFySXRl
bUNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tUZXh0VG91Y2hCYXJJdGVtQ29udHJvbGxlciBhbGxv
Y10gaW5pdFdpdGhXZWJWaWV3SW1wbDp0aGlzXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbQppbmRleCA4YzBmMTQ2ZGE1YTQzNjRm
NzZmYjU2ODE3MDFiY2ZmNmE1ZWMxNTBiLi5jNTUxY2U4NjM2Y2UyMTRkOGFjMjU1ODQyODk3YWEy
YTcxZDVhM2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5n
L2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVJT1MubW0KQEAgLTM1LDcgKzM1LDcgQEAKICNpbXBvcnQgPFVJS2l0L1VJUGFu
R2VzdHVyZVJlY29nbml6ZXIuaD4KICNpbXBvcnQgPFVJS2l0L1VJU2Nyb2xsVmlldy5oPgogI2lt
cG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KLSNpbXBvcnQgPHd0Zi9UZW1wb3JhcnlD
aGFuZ2UuaD4KKyNpbXBvcnQgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiAjaWYgRU5BQkxFKENTU19T
Q1JPTExfU05BUCkKICNpbXBvcnQgPFdlYkNvcmUvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmg+CkBA
IC0xNzksNyArMTc5LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
SU9TOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKIHsKICAgICBTY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oc3Rh
dGVOb2RlKTsKIAotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiB1cGRhdGluZ0NoYW5nZShtX3Vw
ZGF0aW5nRnJvbVN0YXRlTm9kZSwgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gdXBkYXRp
bmdDaGFuZ2UobV91cGRhdGluZ0Zyb21TdGF0ZU5vZGUsIHRydWUpOwogCiAgICAgY29uc3QgYXV0
byYgc2Nyb2xsaW5nU3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Nj
cm9sbGluZ05vZGU+KHN0YXRlTm9kZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9ndGsvV2ViUGFzdGVib2FyZFByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9ndGsvV2ViUGFzdGVib2FyZFByb3h5R3RrLmNwcAppbmRleCBiOGM5ZjdiZGZmNWNk
M2ZmY2EyOGQyZDM1ZGY1MTczZTg4N2QzMWU2Li4xYjE1ODY5YmRiMWQ3ZjIyNTQwNDAxOTI1NGI2
YWE4YWU5YWJlMmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dl
YlBhc3RlYm9hcmRQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJQYXN0ZWJvYXJkUHJveHlHdGsuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAi
V2ViRnJhbWVQcm94eS5oIgogI2luY2x1ZGUgIldlYlNlbGVjdGlvbkRhdGEuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlD
aGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQg
V2ViUGFzdGVib2FyZFByb3h5Ojp3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZE5hbWUsIGNvbnN0IFdlYlNlbGVjdGlvbkRhdGEmIHNlbGVjdGlvbikKIHsKLSAgICBUZW1w
b3JhcnlDaGFuZ2U8V2ViRnJhbWVQcm94eSo+IGZyYW1lV3JpdGluZ1RvQ2xpcGJvYXJkKG1fZnJh
bWVXcml0aW5nVG9DbGlwYm9hcmQsIG1fcHJpbWFyeVNlbGVjdGlvbk93bmVyKTsKKyAgICBTZXRG
b3JTY29wZTxXZWJGcmFtZVByb3h5Kj4gZnJhbWVXcml0aW5nVG9DbGlwYm9hcmQobV9mcmFtZVdy
aXRpbmdUb0NsaXBib2FyZCwgbV9wcmltYXJ5U2VsZWN0aW9uT3duZXIpOwogICAgIFBsYXRmb3Jt
UGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSkud3JpdGVUb0NsaXBib2FyZChzZWxlY3Rpb24uc2Vs
ZWN0aW9uRGF0YSwgW3RoaXNdIHsKICAgICAgICAgaWYgKG1fZnJhbWVXcml0aW5nVG9DbGlwYm9h
cmQgPT0gbV9wcmltYXJ5U2VsZWN0aW9uT3duZXIpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3Bw
CmluZGV4IDczNWI3ZjE5YTZiNTI1NmExOWNkODg1ZmUxNDE3OTYzMGQ2M2JiZTguLjAwZDc3NmZm
MzA3ZDE2MWU0YTE3NjNiM2YwOThjMGRmZjA2ODc2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29v
cmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0zNiw3ICszNiw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9NYWluRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNsdWRl
IDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgQ29tcG9z
aXRpbmdDb29yZGluYXRvcjo6c2l6ZURpZENoYW5nZShjb25zdCBJbnRTaXplJiBuZXdTaXplKQog
CiBib29sIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygp
CiB7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHByb3RlY3RvcihtX2lzRmx1c2hpbmdMYXll
ckNoYW5nZXMsIHRydWUpOworICAgIFNldEZvclNjb3BlPGJvb2w+IHByb3RlY3RvcihtX2lzRmx1
c2hpbmdMYXllckNoYW5nZXMsIHRydWUpOwogCiAgICAgaW5pdGlhbGl6ZVJvb3RDb21wb3NpdGlu
Z0xheWVySWZOZWVkZWQoKTsKIApAQCAtMzczLDcgKzM3Myw3IEBAIHZvaWQgQ29tcG9zaXRpbmdD
b29yZGluYXRvcjo6cmVuZGVyTmV4dEZyYW1lKCkKIAogdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5h
dG9yOjpwdXJnZUJhY2tpbmdTdG9yZXMoKQogewotICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBw
dXJnaW5nVG9nZ2xlKG1faXNQdXJnaW5nLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBw
dXJnaW5nVG9nZ2xlKG1faXNQdXJnaW5nLCB0cnVlKTsKIAogICAgIGZvciAoYXV0byYgcmVnaXN0
ZXJlZExheWVyIDogbV9yZWdpc3RlcmVkTGF5ZXJzLnZhbHVlcygpKQogICAgICAgICByZWdpc3Rl
cmVkTGF5ZXItPnB1cmdlQmFja2luZ1N0b3JlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDFmNmU2ODk1OWJiNzI0YTg0ZmM3NDEyZDAw
MzZjMDk4NzZkNTFkMGEuLjM0N2YxZDRlODIyMmQ5Y2Q2Yzc0NGFjODNhY2ZhOGMyMzdiMzRlMzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTE4NSw3ICsxODUsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KLSNp
bmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3Bl
Lmg+CiAKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAjaW5jbHVkZSAiRGF0YURldGVjdGlv
blJlc3VsdC5oIgpAQCAtMjIzOCw3ICsyMjM4LDcgQEAgc3RhdGljIGJvb2wgaGFuZGxlTW91c2VF
dmVudChjb25zdCBXZWJNb3VzZUV2ZW50JiBtb3VzZUV2ZW50LCBXZWJQYWdlKiBwYWdlLCBib28K
IAogdm9pZCBXZWJQYWdlOjptb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZl
bnQpCiB7Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHVzZXJJc0ludGVyYWN0aW5nQ2hhbmdl
IHsgbV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9OworICAgIFNldEZvclNjb3BlPGJvb2w+IHVz
ZXJJc0ludGVyYWN0aW5nQ2hhbmdlIHsgbV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9OwogCiAg
ICAgbV91c2VyQWN0aXZpdHlIeXN0ZXJlc2lzLmltcHVsc2UoKTsKIApAQCAtMjMxNiw3ICsyMzE2
LDcgQEAgc3RhdGljIGJvb2wgaGFuZGxlS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYg
a2V5Ym9hcmRFdmVudCwgUGFnZSogcGFnZSkKIAogdm9pZCBXZWJQYWdlOjprZXlFdmVudChjb25z
dCBXZWJLZXlib2FyZEV2ZW50JiBrZXlib2FyZEV2ZW50KQogewotICAgIFRlbXBvcmFyeUNoYW5n
ZTxib29sPiB1c2VySXNJbnRlcmFjdGluZ0NoYW5nZSB7IG1fdXNlcklzSW50ZXJhY3RpbmcsIHRy
dWUgfTsKKyAgICBTZXRGb3JTY29wZTxib29sPiB1c2VySXNJbnRlcmFjdGluZ0NoYW5nZSB7IG1f
dXNlcklzSW50ZXJhY3RpbmcsIHRydWUgfTsKIAogICAgIG1fdXNlckFjdGl2aXR5SHlzdGVyZXNp
cy5pbXB1bHNlKCk7CiAKQEAgLTIzNzgsNyArMjM3OCw3IEBAIHN0YXRpYyBib29sIGhhbmRsZVRv
dWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgUGFnZSogcGFnZSkKICNp
ZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKIHZvaWQgV2ViUGFnZTo6ZGlzcGF0Y2hUb3VjaEV2
ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQsIGJvb2wmIGhhbmRsZWQpCiB7Ci0g
ICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHVzZXJJc0ludGVyYWN0aW5nQ2hhbmdlIHsgbV91c2Vy
SXNJbnRlcmFjdGluZywgdHJ1ZSB9OworICAgIFNldEZvclNjb3BlPGJvb2w+IHVzZXJJc0ludGVy
YWN0aW5nQ2hhbmdlIHsgbV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9OwogCiAgICAgbV9sYXN0
SW50ZXJhY3Rpb25Mb2NhdGlvbiA9IHRvdWNoRXZlbnQucG9zaXRpb24oKTsKICAgICBDdXJyZW50
RXZlbnQgY3VycmVudEV2ZW50KHRvdWNoRXZlbnQpOwpAQCAtMjUzOSw3ICsyNTM5LDcgQEAgdm9p
ZCBXZWJQYWdlOjpzZXRJbml0aWFsRm9jdXMoYm9vbCBmb3J3YXJkLCBib29sIGlzS2V5Ym9hcmRF
dmVudFZhbGlkLCBjb25zdCBXZWIKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHVzZXJJc0ludGVyYWN0aW5nQ2hhbmdlIHsgbV91
c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9OworICAgIFNldEZvclNjb3BlPGJvb2w+IHVzZXJJc0lu
dGVyYWN0aW5nQ2hhbmdlIHsgbV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9OwogCiAgICAgRnJh
bWUmIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUo
KTsKICAgICBmcmFtZS5kb2N1bWVudCgpLT5zZXRGb2N1c2VkRWxlbWVudCgwKTsKQEAgLTQ2NDIs
NyArNDY0Miw3IEBAIHZvaWQgV2ViUGFnZTo6aW5zZXJ0VGV4dEFzeW5jKGNvbnN0IFN0cmluZyYg
dGV4dCwgY29uc3QgRWRpdGluZ1JhbmdlJiByZXBsYWNlbWVuCiAgICAgaWYgKHJlcGxhY2VtZW50
RWRpdGluZ1JhbmdlLmxvY2F0aW9uICE9IG5vdEZvdW5kKSB7CiAgICAgICAgIFJlZlB0cjxSYW5n
ZT4gcmVwbGFjZW1lbnRSYW5nZSA9IHJhbmdlRnJvbUVkaXRpbmdSYW5nZShmcmFtZSwgcmVwbGFj
ZW1lbnRFZGl0aW5nUmFuZ2UsIHN0YXRpY19jYXN0PEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbz4o
ZWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvKSk7CiAgICAgICAgIGlmIChyZXBsYWNlbWVudFJhbmdl
KSB7Ci0gICAgICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gaXNTZWxlY3RpbmdUZXh0V2hp
bGVJbnNlcnRpbmdBc3luY2hyb25vdXNseShtX2lzU2VsZWN0aW5nVGV4dFdoaWxlSW5zZXJ0aW5n
QXN5bmNocm9ub3VzbHksIHN1cHByZXNzU2VsZWN0aW9uVXBkYXRlKTsKKyAgICAgICAgICAgIFNl
dEZvclNjb3BlPGJvb2w+IGlzU2VsZWN0aW5nVGV4dFdoaWxlSW5zZXJ0aW5nQXN5bmNocm9ub3Vz
bHkobV9pc1NlbGVjdGluZ1RleHRXaGlsZUluc2VydGluZ0FzeW5jaHJvbm91c2x5LCBzdXBwcmVz
c1NlbGVjdGlvblVwZGF0ZSk7CiAgICAgICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxl
Y3Rpb24oVmlzaWJsZVNlbGVjdGlvbigqcmVwbGFjZW1lbnRSYW5nZSwgU0VMX0RFRkFVTFRfQUZG
SU5JVFkpKTsKICAgICAgICAgICAgIHJlcGxhY2VzVGV4dCA9IHRydWU7CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQppbmRleCBhMDFmYTA0ZjU4MGNmYTk0MDRjMjRjYzdkNzk5NzJkYmEwYTVjZDdmLi4xNWEyYzlj
Mjk0YmU5Y2I0YjYxYmJkMThjYmNjNzIwMzA4ZDk1ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xMDMsNyArMTAz
LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV0tDb250ZW50T2JzZXJ2YXRpb24uaD4KICNpbXBvcnQg
PFdlYkNvcmUvV2ViRXZlbnQuaD4KICNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0jaW1wb3J0
IDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTI2ODcsNyArMjY4Nyw3IEBAIHZvaWQgV2Vi
UGFnZTo6cmVzZXRUZXh0QXV0b3NpemluZygpCiAKIHZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwgY29uc3QgRmxvYXRSZWN0
JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNj
dXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJ
blNjcm9sbFZpZXdDb29yZGluYXRlcywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmlj
ZU9yaWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiB7Ci0g
ICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGR5bmFtaWNTaXplVXBkYXRlR3VhcmQobV9pbkR5bmFt
aWNTaXplVXBkYXRlLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBkeW5hbWljU2l6ZVVw
ZGF0ZUd1YXJkKG1faW5EeW5hbWljU2l6ZVVwZGF0ZSwgdHJ1ZSk7CiAgICAgLy8gRklYTUU6IHRo
aXMgZG9lcyBub3QgaGFuZGxlIHRoZSBjYXNlcyB3aGVyZSB0aGUgY29udGVudCB3b3VsZCBjaGFu
Z2UgdGhlIGNvbnRlbnQgc2l6ZSBvciBzY3JvbGwgcG9zaXRpb24gZnJvbSBKYXZhU2NyaXB0Lgog
ICAgIC8vIFRvIGhhbmRsZSB0aG9zZSBjYXNlcywgd2Ugd291bGQgbmVlZCB0byByZWRvIHRoaXMg
Y29tcHV0YXRpb24gb24gZXZlcnkgY2hhbmdlIHVudGlsIHRoZSBuZXh0IHZpc2libGUgY29udGVu
dCByZWN0IHVwZGF0ZS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCmluZGV4IGU4ZTE0
YTkwYjNhOWU2ZTc1MTU4NDY2OTJiNjg2N2QzN2JlNTcwYjYuLmY0YTYxYTBhZDc5ZWFkZDdlMDc2
OTVkNjg0ZGM4NDczNGQ1M2I4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KQEAg
LTM1LDggKzM1LDggQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL01haW5GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CisjaW1wb3J0IDx3
dGYvU2V0Rm9yU2NvcGUuaD4KICNpbXBvcnQgPHd0Zi9TeXN0ZW1UcmFjaW5nLmg+Ci0jaW1wb3J0
IDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW0KaW5kZXggYTJhMGJmNDQ5ODFjZmQyNjE2OTkxMTdmNmFlYzhjNmYwMmVjYzU5My4uY2U2NjUw
NmFmNGQzYzFhY2RlYjlhMzMxZTI0YzBlYWQxZWQxN2QwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtOTAsNyArOTAs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9odG1sZWRpdGluZy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+
Ci0jaW1wb3J0IDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW1wb3J0IDx3dGYvU2V0Rm9yU2Nv
cGUuaD4KIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAjaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0TWFjLmg+CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTk0ODQ4MzZmNTM5YzIyODViODc3YWNhMGUx
ZGUzMzIyODI0YWUzMS4uMTMzYjU0YmJjNWI2ZjQwNDdiNGNmMzYxNGJlOTE0NTA1NTkzMWJjYyAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDE2LTExLTE3ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgorCisgICAgICAgIFtKU0NdIFdURjo6VGVtcG9yYXJ5Q2hhbmdlIHdpdGggV1RGOjpTZXRG
b3JTY29wZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NzYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1NldEZvclNjb3BlLmNwcDogUmVuYW1lZCBmcm9tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RlbXBvcmFyeUNoYW5nZS5jcHAuCisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNp
c3RlbnRWYWx1ZXMpOgorCiAyMDE2LTExLTE2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBw
bGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMDg0NTUpOiBMYXlvdXRUZXN0cyBzd2lw
ZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbCBhbmQgc3dpcGUvbWFpbi1mcmFtZS1w
aW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwgYXJlIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlz
dHMudHh0CmluZGV4IDg5N2IwZWRmYzJkMjQ0YmQ1Mzk1NzJhZDIyNDUwN2MwMDUwODg3MTQuLjA1
M2M4NmQ2OTQzYTJiMjk1MjY3YzUzOWU5ZTQ0MzY5NWMzOTU3NWQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9D
TWFrZUxpc3RzLnR4dApAQCAtNzQsMTIgKzc0LDEyIEBAIHNldChUZXN0V1RGX1NPVVJDRVMKICAg
ICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvU2F0dXJhdGVkQXJpdGhtZXRpY09wZXJh
dGlvbnMuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1Njb3BlLmNwcAog
ICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9TY29wZWRMYW1iZGEuY3BwCisgICAg
JHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1NldEZvclNjb3BlLmNwcAogICAgICR7VEVT
VFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAogICAgICR7VEVTVFdF
QktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9TdHJpbmdIYXNoZXIuY3BwCiAgICAgJHtURVNUV0VCS0lU
QVBJX0RJUn0vVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJ
Un0vVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElS
fS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKLSAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0
cy9XVEYvVGVtcG9yYXJ5Q2hhbmdlLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3Rz
L1dURi9UaW1lLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9VbmlxdWVS
ZWYuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1ZhcmlhbnQuY3BwCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDVjYTcxNmZlYmY5ODczYWYyOTVkMjk4ZGM5MjA3ZWNh
MTE5YjJiZmYuLjU0ZTdlOGE4YzMxYTM3YjFhZWVjNDY5YWJmNDdjZmY1Y2U2OWQyNTUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMjYsNyArMjI2LDcgQEAKIAkJN0M4M0RGMzcxRDBBNTkw
QzAwRkVCQ0YzIC8qIFN0cmluZ0ltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjZGMUI0NDMxNUNBNDM0RjAwRDFFNEJGIC8qIFN0cmluZ0ltcGwu
Y3BwICovOyB9OwogCQk3QzgzREYzODFEMEE1OTBDMDBGRUJDRjMgLyogU3RyaW5nT3BlcmF0b3Jz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwMTM2
M0M3MTNDMzk5NzMwMEVGMzk2NCAvKiBTdHJpbmdPcGVyYXRvcnMuY3BwICovOyB9OwogCQk3Qzgz
REYzQTFEMEE1OTBDMDBGRUJDRjMgLyogU3RyaW5nVmlldy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc0RDQyRDE4ODIyOEYzMDBFNUVENTcgLyog
U3RyaW5nVmlldy5jcHAgKi87IH07Ci0JCTdDODNERjNEMUQwQTU5MEMwMEZFQkNGMyAvKiBUZW1w
b3JhcnlDaGFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEJDRDg1NjkxNDg1Qzk4QjAwRUEyMDAzIC8qIFRlbXBvcmFyeUNoYW5nZS5jcHAgKi87
IH07CisJCTdDODNERjNEMUQwQTU5MEMwMEZFQkNGMyAvKiBTZXRGb3JTY29wZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQkNEODU2OTE0ODVDOThC
MDBFQTIwMDMgLyogU2V0Rm9yU2NvcGUuY3BwICovOyB9OwogCQk3QzgzREY0MDFEMEE1OTBDMDBG
RUJDRjMgLyogVGVzdHNDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTMxQUE4MTE3MTMxRkMwMEI2OTcyNyAvKiBUZXN0c0NvbnRy
b2xsZXIuY3BwICovOyB9OwogCQk3QzgzREY0QzFEMEE1OTBDMDBGRUJDRjMgLyogVmVjdG9yLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTVGNUY4
MTRBRDc4RUUwMDQ4NEJFMSAvKiBWZWN0b3IuY3BwICovOyB9OwogCQk3QzgzREY1OTFEMEE1OTBD
MDBGRUJDRjMgLyogUGFya2luZ0xvdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkU0NDc5NzFCNzZGMUUzMDA5NDk4RUIgLyogUGFya2luZ0xvdC5j
cHAgKi87IH07CkBAIC03MzEsNyArNzMxLDcgQEAKIAkJMDBDRDlGNjIxNUJFMzEyQzAwMkRBMkNF
IC8qIEJhY2tGb3J3YXJkTGlzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEJhY2tGb3J3YXJkTGlzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDc2NkREMUYxQTVBRDUyMDAwMjNFM0JCIC8qIFBlbmRpbmdBUElSZXF1ZXN0VVJMLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlbmRpbmdBUElSZXF1ZXN0VVJMLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEJDRDgzMzQxNDg1N0NFNDAwRUEyMDAz
IC8qIEhhc2hNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGFz
aE1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBCQ0Q4NTY5MTQ4NUM5OEIw
MEVBMjAwMyAvKiBUZW1wb3JhcnlDaGFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVGVtcG9yYXJ5Q2hhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEJDRDg1NjkxNDg1Qzk4QjAwRUEyMDAzIC8qIFNldEZvclNjb3BlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNldEZvclNjb3BlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxMzlFNzIxQTQyM0EyQjAwRjU5MEY1IC8qIFBsYXRmb3Jt
VXRpbGl0aWVzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBQbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tOyBwYXRoID0gY29jb2EvUGxhdGZvcm1VdGlsaXRp
ZXNDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxMzlFNzUxQTQyM0E1
MzAwRjU5MEY1IC8qIFdlYWtPYmpDUHRyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gV2Vha09iakNQdHIubW07IHBhdGggPSBjb2NvYS9XZWFrT2JqQ1B0ci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxN0JCRDQxNUFGNkM0RDAwN0FCNzUzIC8q
IFdlYkNvcmVTdGF0aXN0aWNzV2l0aE5vV2ViUHJvY2Vzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg0OCw3ICsxODQ4LDcgQEAKIAkJCQlD
MDEzNjNDNzEzQzM5OTczMDBFRjM5NjQgLyogU3RyaW5nT3BlcmF0b3JzLmNwcCAqLywKIAkJCQk3
Qzc0RDQyRDE4ODIyOEYzMDBFNUVENTcgLyogU3RyaW5nVmlldy5jcHAgKi8sCiAJCQkJNTU5N0Y4
MzQxRDk1OTZDODAwNjZCQzIxIC8qIFN5bmNocm9uaXplZEZpeGVkUXVldWUuY3BwICovLAotCQkJ
CTBCQ0Q4NTY5MTQ4NUM5OEIwMEVBMjAwMyAvKiBUZW1wb3JhcnlDaGFuZ2UuY3BwICovLAorCQkJ
CTBCQ0Q4NTY5MTQ4NUM5OEIwMEVBMjAwMyAvKiBTZXRGb3JTY29wZS5jcHAgKi8sCiAJCQkJMEYy
QzIwQjcxRENENTQ0ODAwNTQyRDlFIC8qIFRpbWUuY3BwICovLAogCQkJCTVDNUU2MzNEMUQwQjY3
OTQwMDg1QTAyNSAvKiBVbmlxdWVSZWYuY3BwICovLAogCQkJCTdDRDBENUFBMUQ1NTM0REUwMDBD
QzlFMSAvKiBWYXJpYW50LmNwcCAqLywKQEAgLTIzNTMsNyArMjM1Myw3IEBACiAJCQkJN0M4M0RG
MzgxRDBBNTkwQzAwRkVCQ0YzIC8qIFN0cmluZ09wZXJhdG9ycy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1NTk3RjgzNjFEOTU5NkM4MDA2NkJDMjEgLyogU3luY2hyb25pemVkRml4ZWRRdWV1ZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzREYzQTFEMEE1OTBDMDBGRUJDRjMgLyogU3RyaW5n
Vmlldy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk3QzgzREYzRDFEMEE1OTBDMDBGRUJDRjMgLyog
VGVtcG9yYXJ5Q2hhbmdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdDODNERjNEMUQwQTU5MEMw
MEZFQkNGMyAvKiBTZXRGb3JTY29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzREY0MDFE
MEE1OTBDMDBGRUJDRjMgLyogVGVzdHNDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDODNFMDNCMUQwQTYwMjcwMEZFQkNGMyAvKiBVdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDODNGQzcxMUQ1NTM1QTgwMDFERkJDRCAvKiBWYXJpYW50LmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2V0Rm9y
U2NvcGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2V0Rm9yU2NvcGUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkyZTM0OTRkNjExNDRmOTY4YTRiYzIyYzE5NmY4YTM0Nzg5OWE2N2YKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TZXRGb3JTY29w
ZS5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgeworCitURVNUKFdURiwgU2V0Rm9yU2NvcGVOZXN0ZWQpCit7CisgICAgYm9vbCBvcmlnaW5h
bGx5RmFsc2UgPSBmYWxzZTsKKyAgICB7CisgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5n
ZTFPcmlnaW5hbGx5RmFsc2Uob3JpZ2luYWxseUZhbHNlLCB0cnVlKTsKKyAgICAgICAgRVhQRUNU
X1RSVUUob3JpZ2luYWxseUZhbHNlKTsKKyAgICAgICAgeworICAgICAgICAgICAgU2V0Rm9yU2Nv
cGU8Ym9vbD4gY2hhbmdlMk9yaWdpbmFsbHlGYWxzZShvcmlnaW5hbGx5RmFsc2UsIGZhbHNlKTsK
KyAgICAgICAgICAgIEVYUEVDVF9GQUxTRShvcmlnaW5hbGx5RmFsc2UpOworICAgICAgICB9Cisg
ICAgICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsbHlGYWxzZSk7CisgICAgfQorICAgIEVYUEVDVF9G
QUxTRShvcmlnaW5hbGx5RmFsc2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UZW1wb3JhcnlDaGFu
Z2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVGVtcG9yYXJ5Q2hhbmdlLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2JhMGYxNWJkNzk4ODRmNGUyYjBkNWIz
ZDM1MzJmMmNkNzliNWE1YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UZW1wb3JhcnlDaGFuZ2UuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0KLSNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+Ci0KLW5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKLQotVEVTVChXVEYsIFRlbXBvcmFyeUNoYW5nZU5lc3RlZCkKLXsK
LSAgICBib29sIG9yaWdpbmFsbHlGYWxzZSA9IGZhbHNlOwotICAgIHsKLSAgICAgICAgVGVtcG9y
YXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZTFPcmlnaW5hbGx5RmFsc2Uob3JpZ2luYWxseUZhbHNlLCB0
cnVlKTsKLSAgICAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWxseUZhbHNlKTsKLSAgICAgICAgewot
ICAgICAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGNoYW5nZTJPcmlnaW5hbGx5RmFsc2Uo
b3JpZ2luYWxseUZhbHNlLCBmYWxzZSk7Ci0gICAgICAgICAgICBFWFBFQ1RfRkFMU0Uob3JpZ2lu
YWxseUZhbHNlKTsKLSAgICAgICAgfQotICAgICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbGx5RmFs
c2UpOwotICAgIH0KLSAgICBFWFBFQ1RfRkFMU0Uob3JpZ2luYWxseUZhbHNlKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcAppbmRleCA5ZjI3MTNhNzY5ZjljOTMwMGVlM2NlZjk3Mzg3ZjI3NWJmYzdkMmYy
Li5lZGVlYzZjOWFlMzI0MzY0MTFhZjFjN2QyZDljOWFhMmYxNWQxYTYzIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNzIsNyArNzIsNyBAQAogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgotI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KKyNp
bmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTY5Miw3ICs2OTIsNyBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKGNv
bnN0IFRlc3RPcHRpb25zJiBvcHRpbwogCiBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRl
VG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogewotICAgIFRl
bXBvcmFyeUNoYW5nZTxTdGF0ZT4gY2hhbmdlU3RhdGUobV9zdGF0ZSwgUmVzZXR0aW5nKTsKKyAg
ICBTZXRGb3JTY29wZTxTdGF0ZT4gY2hhbmdlU3RhdGUobV9zdGF0ZSwgUmVzZXR0aW5nKTsKICAg
ICBtX2JlZm9yZVVubG9hZFJldHVyblZhbHVlID0gdHJ1ZTsKIAogICAgIC8vIFRoaXMgc2V0dGlu
ZyBkaWZmZXJzIGJldHdlZW4gdGhlIGFudGlxdWUgYW5kIG1vZGVybiBNYWMgV2ViS2l0MiBBUEku
Cg==
</data>
<flag name="review"
          id="317683"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>